1

我有以下代码:

enum e {
    X=1,
    Y,
    Z
}

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

其他元素会每增加 1 吗?

4

3 回答 3

10

正如其他人所说,答案是肯定的。这是标准的说法。

C99 规范。第 6.7.2.2 节枚举说明符。第 3 段

枚举器列表中的标识符被声明为具有 int 类型的常量,并且可以出现在任何允许的地方。)带有 = 的枚举器将其枚举常量定义为常量表达式的值。如果第一个枚举数没有 =,则其枚举常数的值为 0。

后面的每个没有 = 的枚举数都将其枚举常量定义为前一个枚举常量的值加 1 得到的常量表达式的值。(使用带 = 的枚举数可能会产生枚举常量,其值与同一枚举中的其他值重复。)

枚举的枚举数也称为其成员。

于 2012-12-10T17:40:37.403 回答
7

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

Y = 2,Z = 3(除非另有说明)。

其他元素是否会每增加 1?

是的。

于 2012-12-10T17:35:32.020 回答
4

是的,Y 为 2,Z 为 3。如果没有明确设置,枚举会增加。

于 2012-12-10T17:35:12.167 回答