C语言--枚举类型 enum

枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量。
image
在我们的程序开发时,对于某个变量有很多个不同的状态,比如,一天可以是星期一或星期二,如果我们不使用枚举而是用#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

本文作者:seekwhale13

本文链接:https://www.cnblogs.com/seekwhale13/p/17171037.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   seekwhale13  阅读(41)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起