有什么方法可以将枚举数据与int表绑定?
例如我有
enum Mode { AUTO, COOL, DRY, HEAT, FAN };
unsigned int modeMap[5] ;
而且我想知道是否可以通过某种方式将枚举数据与modemap表中的相应数据绑定。我不想手动执行此操作,因为我有更多的表,而且我不想写每个表。我想做类似的事情
for(i=0;i<sizeof(modeMap);i++)
Mode[i]=modeMap[i];
但这会引发错误。有什么方法可以做我想做的事还是必须手动做?
编辑
在运行时,我将有这个
modeMap[] = { 0x000010, 0x000000, 0x000020, 0x000030, 0x000020 };
所以我想有一行代码在AUTO分配0x000010,在COOl分配0x000000等。
最佳答案
当您要命名或跟踪数组的索引时,通常要做的是:
typedef enum
{
AUTO,
COOL,
DRY,
HEAT,
FAN,
MODES_N
} Mode;
unsigned int modeMap [MODES_N];
static_assert(MODES_N == sizeof(modeMap) / sizeof(*modeMap),
"Enum not consistent with array modeMap");
for(i=0; i<MODES_N; i++)
modeMap[i] = whatever;