当我将枚举转换为整数类型时,我能期待什么?
-
第一个变量的值是0吗?
-
变体序数是否递增1?
假设我没有明确提供这些值。
如果你喜欢代码,那么问题就在这里:
enum foo
{
A,
B,
};
int
main(void)
{
assert(A == 0);
assert(B == 1);
}
第一个变量的值为0吗?
是。
变量序数是否递增1?
是。
C为枚举序数值提供了什么保证
来源https://port70.net/~nsz/c/c11/n1570.html#6.7.2.2:
[…]如果第一个枚举器没有=,则其枚举常量的值为0。每个no=的后续枚举器都将其枚举常量定义为常量表达式的值,该值是通过将上一个枚举常量的值加1而获得的。[…]