enum SEQ{
one;
two;
three;
}e;
e=(SEQ)4; //这个e会是哪个值?
记录一下,下次找答案.
百度到了:结果将是不确定的,这么做不会出错,但得不到想要的结果。
3前面讲到可以通过强制转换将其他类型值赋给枚举变量:
Weekday = enumType(2);
这是合法的;但是
Weekday = enumType(20);是非法的。
这里涉及枚举取值范围的概念:
枚举的上限是 大于最大枚举量的 最小的2的幂,减去1;
枚举的下限有两种情况:一、枚举量的最小值不小于0,则枚举下限取0;二、枚举量的最小值小于0,则枚举下限是 小于最小枚举量的 最大的2的幂,加上1。
举例来讲:
假如定义 enum enumType1 { First=-5,Second=14,Third=10 };
则枚举的上限是16-1=15(16大于最大枚举量14,且为2的幂);
枚举的下限是-8+1=-7(-8小于最小枚举量-5,且为2的幂);
转:
阅读(4052) | 评论(0) | 转发(0) |