揭开枚举类的面纱(Unlocking the Enumeration/enum Mystery)

时间:2023-03-08 19:31:22

枚举给用户定义固定数据组提供了方便。枚举类就是一系列常量整型值,这也就意味着枚举类型不能被修改。

这里我们将要讨论C语言中枚举类型的用法和限制。

枚举通过枚举关键值定义,类似结构体定义

语法(Syntax):

enum tagname{CONST1=1,CONST2,…} enumVariable;

tagname枚举类型名,这一项可以省略。

{CONST1=1,CONST2,…}一组代替常量值的字符串,每个字符串对应一个整型数据,整形数据从0开始,第二个是1,等等。除非使用者自己定义类如CONST1=1,否则,字符串的序号就是字符串对应的整形值。如果用户自己指定字符串对应的整型值,那它后面的字符串所对应的整形值就是跟着前面的连续值。说起来不清楚,举个例子,CONST2=6,这个元素后面的元素的值就是相应的7,8,9等等。

enumVariable,枚举类型的变量列表。枚举类型的变量是整型的,除了枚举常量,这些变量可以被赋值任何整型数据。这个定义也是可选的,像结构体一样的,也可以在后面程序中定义:

enum tagname enumVariable;

下面是枚举类型使用范例:

#include <stdio.h>

//Defining the enum
enum week
{
MONDAY= -1,TUESDAY,WEDNESDAY,THURSDAY=6,FRIDAY,SATURDAY,SUNDAY
}; int main(void)
{
//Declaring an enum in the program
enum week day=FRIDAY; switch(day)
{
case MONDAY:
printf("Monday Sucks");
break; case SATURDAY:
printf("Weekends are fun");
break; case SUNDAY:
printf("Weekends are fun");
break; default:
printf("It depends on the mood :D %d",day);
break;
} return 0;
}