我有一个枚举Eg.
enum {
APPLE,
MANGO,
BANANA
}
Run Code Online (Sandbox Code Playgroud)
和相应的字符串数组
char fruits[] =
{
"apple",
"mango",
"banana"
}
Run Code Online (Sandbox Code Playgroud)
我需要检索字符串的索引,因为我有字符串.因此,如果字符串是苹果,我需要得到0,依此类推.[ Enum另外,可能有助于解决方案]
是否有一种优雅的方式,保存[apple,0],[banana,1]简短,我可以用作宏.我不需要像哈希表那样冗长的东西.可以Enum协助映射吗?
use*_*003 10
你可以做点什么
entries.h
ENTRY(APPLE, "apple"),
ENTRY(MANGO, "mango"),
Run Code Online (Sandbox Code Playgroud)
在你的文件中
#define ENTRY(a,b) b
const char *fruits [] = {
#include "entries.h"
} ;
#undef ENTRY
#define ENTRY(a,b) a
enum fruit_t
{
#include "entries.h"
} ;
Run Code Online (Sandbox Code Playgroud)