如果一个变量有几种可能的值,则可以定义为枚举类型,就是把各种存在的值一一的列举出来。枚举在C/C++/c#中,是一个被命名的整型常数的集合。它可以让数据更简洁,更易读。
接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:
#define
#define
#define
#define
#define
#define
#define
这个看起来代码量就比较多,接下来我们看看使用枚举的方式:
enum DAY{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
这样看起来是不是更简洁了。使用关键字enum定义枚举。
语法定义格式
语法定义格式为:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
}
如果枚举没有初始化,即省掉"=整型常数"时, 则从第一个标识符开始,顺次赋给标识符0, 1, 2, …。但当枚举中的某个成员赋值后,其后的成员按依次加1的规则确定其值。
定义枚举类型变量
具体有四种方式 :
- 1、定义枚举类型的同时定义枚举变量:
enum DAY{
MON=1,TUE,WED,THU,FRI,SAT,SUN
}day;
- 2、先定义枚举类型,再定义枚举变量
enum DAY{
MON=1,TUE,WED,THU,FRI,SAT,SUN
};
enum DAY day;
- 3、先定义枚举,再定义枚举别名,再用别名定义变量:
typedef enum{
MON=1,TUE,WED,THU,FRI,SAT,SUN
}DAY;
DAY day = TUE;
- 4、省略枚举名称,直接定义枚举变量
enum{
MON=1,TUE,WED,THU,FRI,SAT,SUN
}day;
完整例子
enum DAY{
MON=1,TUE,WED,THU,FRI,SAT,SUN
}day;
int main(int argc,char* argv){
for(day = MON;day <= SUN;day++){
printf("枚举元素:%d\n",day);
}
return 0;
}
运行结果:
~/Desktop/c$ gcc main.c -o main
~/Desktop/c$ ./main
枚举元素:1
枚举元素:2
枚举元素:3
枚举元素:4
枚举元素:5
枚举元素:6
枚举元素:7
谢谢阅读。