C语言中如何使用枚举类型
本篇文章为大家展示了C语言中如何使用枚举类型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
成都做网站、网站设计服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。成都创新互联把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!
枚举是C语言里面所定义的一种基本数据类型,它可以使程序变得更加简介,更加易读。枚举的定义类似于我们数学里面的有限集合,如一周有7天,分别是SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY。那我们在编程时定义这些星期天数的时候,就可以将其定义为一个枚举,此后的使用中只要用到这个枚举类型定义的变量,其值也就是这七个星期天数中的任意一天。以下内容,我们就以这七个星期天数为例,开始我们枚举的讲解。
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
} 枚举变量;
当然,我们也可以使用typedef关键词,将一个枚举定义成一种模板数据类型,其形式为:
typedef enum
{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
} 枚举数据类型;
与结构体和共用体不一样的是,一个枚举内部的成员不能被显示地指定数据类型,枚举中的成员只能是整型数值,这些数值你可以显示地指出来,或者使用编译器分配的默认值。另外,枚举内部的成员并不是变量,它们只不过是一系列的标识符而已,其属性和常量一致,因此在我们使用枚举内部成员的时候,除了初始化以外便不可以再随便对其赋值了。如,我们可以将一周七天定义成一种枚举类型。
typedef enum
{
SUNDAY= 0,
MONDAY= 1,
TUESDAY = 2,
WEDNESDAY = 3,
THURSDAY = 4,
FRIDAY = 5,
SATURDAY = 6
} EWeekday_t;//定义枚举类型
EWeekday_t Wekday; //定义枚举变量
这里再注意一下枚举定义时和结构体联合体定义的区别,每一项数据成员之后都是以逗号结尾的,而不是分号。最后一项后面的逗号可以省略。以上就是定义一个枚举类型,并且显示地指明这个枚举内部每一个标识符的值。一旦当枚举变量Wekday被定义好之后,我们就可以使用枚举定义时里面的标识符对其进行赋值了,如Wekday = THURSDAY。当然,如果我们不想对每一项的枚举标识符进行赋值,我们也可以使用省略的写法来完成,只要显示地指明出第一个成员的值,后面的枚举值都会在第一个成员值的基础上往后增1。typedef enum{ SUNDAY= 0, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY , SATURDAY} EWeekday_t;//定义枚举类型EWeekday_t Wekday; //定义枚举变量
上面这段代码,虽然没有显示地指明枚举中标识符的每个数值,但是它显示地指明了SUNDAY为0,那么编译器就会显示地在0的基础上分别递增1,并且按顺序赋给下面的标识符,如MONDAY就为1,TUESDAY就为2,依次类推。如图1所示,这里注意下,我们对枚举变量赋值时,虽然可以直接使用标识符,如Wekday= MONDAY,但是用printf函数打印时,我们还是需要使用“%d”将其作为整数打印出来,打印的结果也是一个个整型数字。如果中途对枚举中某一标识符再赋值,那么这个被赋值标识符后面的标识符都会顺延加1。如图2所示。当然,枚举中标识符的值可以出现重复,但无论怎么变,枚举中的标识符都满足一条规律,即显式指明标识符后面的标识符都会增1。如图3所示,我们将标识符WEDNESDAY再显示地指明为0,那么其后面的标识符都会从0开始自增。还需要注意一点的是,在C语言中,枚举只是一种让程序变得明了的手段,并不能对变量的值进行限定,这一点很重要,因此,你可以对枚举任意赋值。对于MinGW来说,哪怕直接对枚举变量赋值浮点数,编译器也不会抛出警告,最多将其作为整数来处理。如图4所示。上述内容就是C语言中如何使用枚举类型,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
当前文章:C语言中如何使用枚举类型
分享URL:
http://azwzsj.com/article/ijicpg.html