枚举
描述固定状态,如:一周七天、天气预报等等。
enum 标识符
{
成员1,
成员2,
...
};
注意花括号内是逗号、花括号外分号不能丢。
如果枚举成员没有赋值,那么默认值是从0一直往下排的。比如,成员1的值是0、成员2的值是1,依此类推。
#include <stdio.h>
enum day
{
MON,
TUS,
THR,
WES,
FRI,
SAT,
SUN
};
//定义变量的方式有多种,和结构体一致。
int main()
{
enum day a = MON;
printf("MON is %d.\n", a);
enum day b = TUS;
printf("TUS is %d.\n", b);
return 0;
}
运行结果如下:
如果是下面这种情况:
#include <stdio.h>
enum day
{
MON = 1,
TUS,
THR,
WES = 1,
FRI,
SAT,
SUN
};
//定义变量的方式有多种,和结构体一致。
int main()
{
enum day a = MON;
printf("MON is %d.\n", a);
enum day b = TUS;
printf("TUS is %d.\n", b);
//重新往下排
enum day c = WES;
printf("WES is %d.\n", a);
enum day d = FRI;
printf("FRI is %d.\n", b);
return 0;
}
运行结果如下:
应用:可以当做一连串的宏来使用。(在状态机编程中使用、在case语句中使用)
//定义有限状态机中可能出现的状态
enum
{
STATE_R=1,
STATE_W,
STATE_Ex,
STATE_T,
};