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