gpt4 book ai didi

c - enum 表 C 与 int 数据表绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 17:31:59 25 4
gpt4 key购买 nike

有没有办法将枚举数据与 int 表绑定(bind)?例如我有

enum Mode      { AUTO, COOL, DRY, HEAT, FAN };
unsigned int modeMap[5] ;

我想知道是否可以以某种方式将枚举数据与模式映射表中的相应数据绑定(bind)。我不想手动执行此操作,因为我有更多表,并且我不想编写每个表。我想做一些类似的事情

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;

关于c - enum 表 C 与 int 数据表绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24384767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com