枚举是一种用户定义的数据类型,它用关键字 enum 来声明
enum 枚举类型名字{名字0,....,名字n};
枚举类型名字通常并不真使用,要用的是大括号里的名字,因为它们就是常量符号,他们的类型是 int,值则依次从0到n
enum colors { red , yellow , green};
创建了三个常量,red 的值是 0 ,yellow 是 1,而 green 是 2.
当需要一些可以排列起来的常量值时,定义枚举的意义就是给了这些常量值名字
#include<stdio.h>
enum color {red,yellow,green};
void f(enum color c);
int main(void)
{
enum color t = red;
scanf("%d",&t);
f(t);
return 0;
}
void f(enum color c)
{
printf("%d\n",c);
}枚举量可以作为值
枚举类型可以跟上 enum 作为类型
实际上是以整数来做内部运算和外部输入输出
枚举量
声明枚举量的时候可以指定值
enum COLOR{ RED=1,YELLOW,GREEN = 5};
枚举只是 int
即使给枚举类型的变量赋不存在的整数值夜没有任何 warning或error
虽然枚举类型可以当做类型使用,但是实际上很少使用
如果有意义排比的名字,用枚举比 const int 方便
枚举比宏(macro)好,因为枚举有 int 类型