如果将第一个元素定义为1,那么枚举元素的值是多少?

时间:2012-12-10 17:34:08

标签: c enums

我有以下代码:

enum e {
    X=1,
    Y,
    Z
}

如果将第一个元素定义为1,那么枚举元素的值是什么?

其他元素每个会增加1吗?

3 个答案:

答案 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.枚举增量。