枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量。
在我们的程序开发时,对于某个变量有很多个不同的状态,比如,一天可以是星期一或星期二,如果我们不使用枚举而是用#define定义义:
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
这样的代码看起来很繁琐,再如,某个机器的不同状态:
#define TRUNOFF 0//关机模式
#define COOLMODE 1//抽湿模式
#define DRYMODE 2//干燥模式
......
#define CLEANMODE 7//制冷模式
如果我们使用枚举的模式进行定义,会显得更为简洁与清晰:
第一个例子:
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
第二个例子:
typedef enum
{
TURNOFF = 0, ///关机模式
COOLMODE, ///制冷模式
DRYMODE, ///抽湿模式
} RUNMODE_STM_EN;
可见枚举类型在上述状态量的定义中更有优势。
1.枚举的一般形式
枚举的定义在很多地方与结构体都很相识,
1.1先定义枚举类型,再定义枚举变量:
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day
1.2定义枚举类型的同时定义枚举变量
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
1.3省略枚举名称,直接定义枚举变量
enum
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
1.4使用Typedef重定义枚举类型名称
typedef enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} Day;
Day day;//定义一个Day类型枚举变量
day = MON;//对枚举变量进行赋值
具体例子:
#include <stdio.h>
typedef enum DAY
{
MON = 1, TUE, WED, THU, FRI, SAT, SUN
}Day;
int main()
{
Day day;
day = WED;
printf("今天是周%d", day);
return 0;
}
执行结果:
今天是周3
标签:WED,--,enum,C语言,枚举,MON,day,define
From: https://www.cnblogs.com/seekwhale13/p/17171037.html