[英]Use of enums in c
我有这个枚举:
enum Seasons{
winter,spring,summer,autumn
};
该代码将做什么?
enum Seasons curr_season;
curr_season = autumn;
curr_season = 19;
谢谢!
enum Seasons{
winter,spring,summer,autumn
};
上面创建了以下内容
winter=0, spring=1, summer=2 and autumn=3
注意: enums
只是整数! ..也可以取负数!
enum Seasons curr_season;
curr_season = autumn;
/* curr_season will now have 3 assigned */
curr_season = 19;
/* curr_season will now have 19 assigned */
您可以运行以下代码进行检查!
#include <stdio.h>
enum Seasons{
winter,spring,summer,autumn
};
void print_seanons(void)
{
printf("winter = %d \n", winter);
printf("spring = %d \n", spring);
printf("summer = %d \n", summer);
printf("autumn = %d \n", autumn);
return;
}
int main(void)
{
enum Seasons curr_season;
print_seanons();
curr_season = autumn;
printf("curr_season = %d \n", curr_season);
curr_season = 19;
printf("curr_season = %d \n", curr_season);
return 0;
}
枚举常量在c中的类型为int
。 尽管enum
并非显式为int
类型,但枚举类型和int
之间的转换是静默的。 通常没有对枚举的约束检查,因此您的代码在功能上等效于:
int curr_season;
curr_season = 3;
curr_season = 19;
枚举是整数值,因此它将为curr_season
分配值19。
交叉使用(将整数值分配给枚举)被认为是不良的编程习惯,应避免使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.