欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

C 语言中的枚举类型

最编程 2024-04-22 12:54:51
...

如果一个变量只有几种可能的值,则可以定义为枚举类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
声明枚举类型用enum开头。例如:

enum weekday{sun, mon, tue, wed, thu, fri, sat};

声明了一个枚举类型enum weekday,则可以用此类型来定义变量。例如:

enum weekday workday, week_end; // 定义了两个枚举变量
weekday = mon;
week_end = sun;

也可以直接定义枚举变量,例如:

enum {sun, mon, tue, wed, thu, fri, sat} workday, week_end;

其中sun、mon、…、sat称为枚举元素枚举常量
说明:
1、在C编译中,对枚举元素按常量处理,故称为枚举常量。它们不是变量,不能进行赋值。例如sun = 7; mon = 1;是错误的。
2、枚举元素作为常量,是有值的。C语言编译按定义时的顺序使它们的值为0、1、2……也可以在定义时,指定枚举元素的值,例如:

enum weekday{sun=7, mon=1, tue, wed, thu, fri, sat} workday, ween_end;
// 定义sun=7, mon=1,以后顺序加1,sat=6

3、枚举值可以用来作判断比较。例如:

if(workday == mon)…
if(workday > sun)…

4、一个证书不能直接赋值给一个枚举变量。例如workday=1;是错误的。它们属于不同的类型。应该先进性强制类型转换,然后才能赋值。例如:

workday = (eunm weekday)2;

相当于将序号为2的枚举元素赋值给workday,相当于

workday = tue;

推荐阅读