我有以下代码:
enum e {
X=1,
Y,
Z
}
Run Code Online (Sandbox Code Playgroud)
如果将第一个元素定义为1,那么枚举元素的值是多少?
其他元素每个会增加1吗?
正如其他人所说,答案是肯定的.这是标准的说法.
C99规范.第6.7.2.2节枚举说明符.第3段
枚举器列表中的标识符声明为具有int类型的常量,并且可以出现在允许的任何位置.)带有=的枚举数将其枚举常量定义为常量表达式的值.如果第一个枚举数没有=,则其枚举常量的值为0.
具有no =的每个后续枚举器将其枚举常量定义为通过将1添加到先前枚举常量的值而获得的常量表达式的值.(使用带枚举的枚举数可能会产生枚举常量,其值与同一枚举中的其他值重复.)
枚举的枚举数也称为其成员.