我们直接来定义一个比较复杂的枚举类型,再来一点点的详细说明。
typedef enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}workday,week_end;
1、首先,声明枚举类型要用enum开头(这里我加了一个typedef,我是看别人程序中
加的,不知道对不对,不对请拍砖)。上面声明了一个枚举类型enum weekday,
可以用此类型来定义变量,如:
enum weekday workday,week_end;
workday,week_end被定义为枚举变量,它们的值只能是sun到sat之一。
2、在C编译中,对枚举元素按照常量处理,故称枚举常量,它不是变量,不能对它赋
值,如{sun=7,mon=1,tue,wed,thu,fri,sat}都是枚举常量
3、枚举元素作为常量,它们是有值的,C语言编译按定义时的顺序,使它们的值
为0,1,2......如:上面的定义中sun定义为7,mon为1,则tue为0,wed为1,
以此类推
4、枚举值可以用来做判断比较,如
if(workday==mon)
if(workday>sun)
5、一个整数不能直接赋值给一个枚举变量
workday=2;是错误的,应该workday=(enum weekday)2;
它相当于将顺序号为2的枚举元素赋值给workday相当于workday=tue;