枚举给用户定义固定数据组提供了方便。枚举类就是一系列常量整型值,这也就意味着枚举类型不能被修改。
这里我们将要讨论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; }