枚举
枚举类型的本质是提供一种范围受限的整型,比如用0-6表示七种颜色,用0-3表示四种状态等,但枚举在C语言中并未实现其本来应有的效果,直到C++环境下枚举才拥有原本该有的属性。
- 枚举常量列表
- enum是关键字
- spectrum是枚举常量列表标签,可以省略。省略的情况下无法定义枚举变量
enum spectrum{red, orange, yellow, green, blue, cyan, purple}; enum {reset, running, sleep, stop};
- 语法要点:
- 枚举常量实质上就是整型,首个枚举常量默认为0。
- 枚举常量在定义时可以赋值,若不赋值,则取其前面的枚举常量的值加1。
- C语言中,枚举等价于整型,支持整型数据的一切操作。
- 枚举数据最重要的作用,是使用有意义的单词,来替代无意义的数字,提高程序的可读性。
实例:
// 声明枚举常量列表
enum Status {reset, running , sleep, stop};
enum Status GetStat()
{
enum Status stat ;
scanf("%d" , &stat);
return stat ;
}
int main(int argc, char const *argv[])
{
while(1)
{
// 假设这个函数是用于获取某一个硬件设备的工作状态的...
int ret = GetStat() ;
switch (ret)
{
case reset:
printf("当前正处于复位状态...\n");
break;
case running:
printf("当前正处于运行状态...\n");
break;
case sleep:
printf("当前正处于睡眠状态...\n");
break;
case stop:
printf("当前正处于停止状态...\n");
break;
default:
printf("当前正处于未知状态...\n");
break;
}
}
return 0;
}