2018-01-15 创建人:Ruo_Xiao
开发环境:VS2010
1、英文全称:Enumerated。
2、栗子:
typedef enum Sum
{
ONE = 1L,
TWO = 2U,
THREE,
FOUR = 4,
FIVE = 0xFF,
//Six = 6.3 //error C2058: 常量表达式不是整型
} ESum;
int _tmain(int argc, _TCHAR* argv[])
{
int i = 2;
Sum S1; //C++
enum Sum S2; //C或C++
ESum S3; //C或C++
S1 = ONE;
S2 = THREE;
//S3 = 3; //error C2440: “=”: 无法从“int”转换为“ESum”
//S2 = i; //error C2440: “=”: 无法从“int”转换为“ESum”
cout<<"S1 = "<<S1<<endl;
cout<<"S2 = "<<S2<<endl;
cin.get();
return 0;
}
结果如下:
由上述代码可知:
(1)枚举类型变量只能赋符号常量,而不能赋常数或者变量。
(2)如果一个符号名没有被赋值,那么他的值就会比前面的符号名大一,若最前面的符号名也没有赋值,则从1开始赋值。
(3)枚举类型里面的符号都是以整型的方式存储的,符号名实际上都是整型值,若赋实数则报错。