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

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

这里我们将要讨论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;
}
posted @ 2015-08-13 16:54  programnote  阅读(416)  评论(0编辑  收藏  举报