是否可以将枚举字段的值增加一个固定数字?
假设我有一个枚举
typedef enum {
VAL_A,
VAL_B,
VAL_C
}ENUM_X;
我想以这样一种方式定义枚举,即值可以按固定数字递增(默认值 1 除外)。这将导致我有(假设数字是 4)
VAL_A = 4; VAL_B = 8; VAL_C = 12;
另外如果上面的答案是正确的,并且有任何这样的机制,是否可以使值顺序递增?
假设我将相同的枚举重新定义为
typedef enum {
#ifdef A
VAL_A,
#endif
#ifdef B
VAL_B,
#endif
#ifdef C
VAL_C,
#endif
VAL_END
}ENUM_X;
如果我为上面的枚举定义了 A 和 C,我应该得到
VAL_A = 4; VAL_C = 8;
但是如果我只定义 B 和 C,我应该得到
VAL_B = 4; VAL_C = 8;
如果我定义所有的 A、B 和 C,我应该得到
VAL_A = 4; VAL_B = 8; VAL_C = 12;
最佳答案
不,语言中没有这样的支持。
当然,您也许可以使用宏来做一些或多或少可怕的事情。我认为整个“自动”部分很麻烦,但如果有足够的动力,人们可以想出最麻烦的预处理器结构。
关于c - 在 C 中将枚举值递增一个固定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40259768/