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
posted @ 2023-03-02 11:02  seekwhale13  阅读(65)  评论(0)    收藏  举报