Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1737507
  • 博文数量: 263
  • 博客积分: 1218
  • 博客等级: 少尉
  • 技术积分: 2862
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-19 02:33
文章分类

全部博文(263)

文章存档

2020年(12)

2019年(2)

2018年(10)

2016年(1)

2015年(20)

2014年(115)

2013年(46)

2012年(37)

2011年(20)

分类: C/C++

2014-05-07 15:15:22

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的幂);

转:
阅读(4045) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~