关于枚举的定义声明等参考
这里说明一下枚举的取值范围
对于枚举来说,只有声明中指出的那些值是有效的,然而,C++通过强制类型转换,增加了可赋值给枚举的合法值。
enum Test{a = 1, b = 2, c = 5 };
Test test;
test = Test (4) 是合法的.
enum TestEnum{
a = 1,
b = 2,
c = 5
};
int main()
{
TestEnum testEnum;
testEnum = TestEnum(4);
cout<<TestEnum(4)<<endl; // 4
}
枚举的取之范围定义:
上限: 大于枚举量最大值的2次幂减1,如上,枚举量最大为5,大于该值的最小2次幂为8,则上限为 8 - 1 = 7;
下限: 如果枚举量的最小值不小于0,则下限为0,否则,假设最小枚举量为-6,那比它小的最大2次幂为-8,因此,下限为-7.
选择用多少空间存储枚举值由编译器决定,对于取值范围较小的枚举,使用一个字节或者更少的空间,对于包含long类型的枚举,则使用4字节。