如果我有一个 enum
没有为枚举分配数字,它的序数是否为 0?例如:
enum enumeration { ZERO,
ONE,
TWO,
THREE,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT,
NINE };
我已经找到了一篇 引用 C99 标准需要 0 序数 的帖子。但我知道 C++ 忽略了 C99 标准中的几件事。而且我还能够找到一个 使用序数值 1 见证编译器的帖子,我似乎也记得看到过,尽管我不能说那是多久以前的事了。
我真的很想看到一个可以证实 C++ 的答案,但我也想知道序数 0 是否成立 ,即使 我在 enum
中间指定了一个值:
enum enumeration { ZERO,
ONE,
TWO,
THREE = 13,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT,
NINE };
原文由 Jonathan Mee 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据该标准 [dcl.enum]
强调我的
所以是的,如果您不指定起始值,它将默认为 0。
这也有效。它将从 0 开始并一路递增。然后在枚举之后,您为其分配的值将开始从该值增加一,以供后续枚举器使用。