【C语言】枚举
基本信息
enum,enumeration,枚举,将有限的值一一列举出来
枚举
是 C 语言的基本数据类型,enum
是 C 语言的关键字
枚举类型是被当做 int 或者 unsigned int 类型来处理的
C 语言中经常要用到一些数字集合,为了提高代码可读性,我们可以使用宏(预处理指令#define)来定义,例如:
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
但是如果使用枚举来定义则会更简洁,例如:
typedef enum {
MON=1,
TUE,
WED,
THU,
FRI,
SAT,
SUN,
} DAY_E;
```
注意:
> (1)上面定义了一个枚举类型,类型名为 `DAY_E` ,类型定义以分号结尾;
> >
> > (2)枚举成员是一些有具体含义的的整型常量,成员之间用逗号隔开;
> >
> > (3)成员的默认值从 0 开始,也可以手动指定某个成员的值,后续成员的值在前一个成员的基础上加 1;
## 定义方法
最推荐的定义方法就是上面提到过的:先给枚举类型起一个别名,然后使用该别名来定义枚举变量,例如
typedef enum {
MON=1,
TUE,
WED,
THU,
FRI,
SAT,
SUN,
} DAY_E;
DAY_E myday;
除了这种方法外,还有一些常见的方法,例如,
先定义一个枚举类型,然后定义枚举变量:
enum DAY_E {
MON=1,
TUE,
WED,
THU,
FRI,
SAT,
SUN,
};
enum DAY_E myday;
定义枚举类型同时定义枚举变量
enum DAY_E {
MON=1,
TUE,
WED,
THU,
FRI,
SAT,
SUN,
} myday;
```
不定义枚举类型,直接定义枚举变量
enum {
MON=1,
TUE,
WED,
THU,
FRI,
SAT,
SUN,
} myday;
```