枚举符也可以用整型的常量表达式进行初始化。如果某个枚举中所有枚举值均非负,该枚举的表示范围就是[0:2^k-1],其中2^k能使所有枚举符位于此范围内的最小的2的幂。如果存在负的枚举符值,该枚举的表示范围就是[-2^k,2^k-1]。
一个整型值可以显示的转换成一个枚举值,除非这种转换的结果位于枚举的表示范围之内,否则就是无定义的。举例如下:
enum flag {x=1,y=2,z=4,e=8}; //表示范围为0:15
flag f1=5; //类型错,5不是flag类型
flag f1=flag(5); //可以,flag(5)是flag类型且在flag的表示范围内
flag f1=flag(99); //无定义,99不在flag的表示范围内
一个枚举的sizeof就是某个能够容纳其范围的整型的sizeof,而且不会大于sizeof(int)。
posted on 2007-01-10 08:52
探丫头 阅读(1115)
评论(4) 编辑 收藏 引用 所属分类:
编程语言——C++