1.枚举定义及其使用
1.1 定义
枚举是一种特殊的整型,关键词为enum,将变量的值一一列举出来,变量的值只限于列举出来的值的范围内
1.2 使用
枚举的定义使用
enum msgtype {
eone,
etwo;
};
1.3 枚举类型注意点:
- 在枚举值表中应列出所有可用值,也被称为枚举元素
- 枚举值是常量,只能在初始化的时候给定一个值,不能在程序中用赋值语句再对它赋值!!!!
typedef enum { DG=0, DN, UDG, UDN } test;
//注意test就是我这里给这个枚举类型自定义的一个新的类型名,类似与int,float等。
DG=2; 这就是错的,因为DG是一个常量,无法再被修改
- 注意,一定是不能再次对枚举值再赋值的,要赋值只能是对枚举变量再次赋值。而且就算是对枚举变量赋值也只能用枚举值对枚举变量赋值,不能直接用数字对枚举变量进行赋值,如果非要用数字赋值的话,前面必须加上一个强制类型转换。举例如下:
typedef enum { DG, DN, UDG, UDN } test;
//注意test就是我这里给这个枚举类型自定义的一个新的类型名,类似与int,float等。
test b;b=2 // 注意此处虽然是对枚举变量赋值,赋的范围虽然也在枚举值范围内,但这是错的,因为你不能用数字直接对其进行赋值。
b=(test)2 这样就可以了,加一个枚举类型的强制转换即可。
typedef enum { DG, DN, UDG, UDN } test;
//注意test就是我这里给这个枚举类型自定义的一个新的类型名,类似与int,float等。
test b;
b = UDG; //b是一个枚举变量,而UDG是一个枚举值常量,这样赋值就是正确的
printf("%d", b);
- 枚举元素本身由系统定义了一个表示序号的数值从0开始顺序定义为0,1…(就是枚举中的那些类型默认从上往下给了一个数值代号)