枚举(Enum)的定义

当一个变量的值被限于列出来的值的范围内,那么这个变量就可以被定义为一个枚举类型的变量。比如一个星期有7天,每一天,都是确定的;一年有12个月,每个月也都是确定的。假如用1个变量来表示一个星期的某一天,或者一年的某个月,用其它的类型都不是很恰当。于是C语言里就引入了一个枚举类型(enum)。

在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。枚举类型是一种基本数据类型,而不是像struct这样的一种构造类型,因为它不能再分解为任何基本类型。

 

enum 枚举名

{

        1,//如果不额外指定则第一个标识等于整数0,后续依次加1

        2,

        3=7,//注意,值3的值不能被指定为0,1,否则会和值1,值2冲突

        4,//这个时候,值4的值是8

        ....

        n

};

enum 枚举名 变量名;

 

enum FRUIT

{

     APPLE,

     PEAR,

     ORANGE,

     PEACH,

     GRAPE,

     BANANA   

};

 

enum FRUIT myfruit = PEACH;

 

typedef enum  _WINVERSION

{

     ,

     WIN2000,

     WINXP,

     VISTA,

     WIN7,

     WIN8  

} WINVERSION;

 

WINVERSION  winos = WIN8;

 

 

typedef enum _WEEKDAY

{

       SUNDAY,

       MONDAY,

       TUESDAY,

       WENSEDAY,

       THURSDAY,

       FRIDAY,

       SATURDAY

}WEEKDAY;

WEEKDAY day = MONDAY;

 

printf(“sizeof(WEEKDAY) = %d\n”, sizeof(day));

 

    注意:枚举变量的值,在定义的时候要全部给出,而且枚举值本身是一个常量,它的值不能被改变。比如:

SUNDAY = 2;//错误

WEEKDAY day = 1 //错误

WEEKDAY day = MONDAY//正确

WEEKDAY day = (WEEKDAY)1//正确

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注