我们知道在 C语言 中学习一种数据类型无非就是搞清楚这种类型的 声明 和 定义。
枚举类型的声明
enum WEEKDAY
{
MON = 1, //枚举常量,可以规定后面迭代值的初始值
TUE,
WED,
THU,
FRI,
SAT,
SUN
};
注意:这样声明的话 enum WEEKDAY 这个整体才是 WEEKDAY 枚举类型
typedef enum WEEKDAY
{
MON = 1,
TUE,
WED,
THU,
FRI,
SAT,
SUN
} WEEKDAY_T;
注意:如果采用这种写法,那么 enum WEEKDAY 和 WEEKDAY_T 就是等价的,在下面要讲到的定义枚举变量的时候 加这两个修饰符都可以
注意:
- 枚举类型变量的取值范围就是上面定义的枚举类型里面的枚举常量
- 因此枚举类型变量赋值只能赋值上面的常量
枚举变量的定义
#include <stdio.h>
#include <string.h>
typedef enum WEEKDAY
{
MON = 1,
TUE,
WED,
THU,
FRI,
SAT,
SUN
} WEEKDAY_T;
int main()
{
enum WEEKDAY day1 = MON; //这里的取值只能为该类型下的枚举常量
WEEKDAY_T day2 = TUE; //枚举类型修饰符 以上两种写法都可以
printf("=%d=", day1);
printf("=%d=", day2);
return 0;
}