有什么方法可以将枚举数据与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;

10-07 18:51