enum变量是int类型的,因此在使用int类型的任何地方都可以使用它,比如可以作为数组的下标,可以作为switch的标签
枚举类型的目的是提高程序的可读性。
它的语法和结构相同,但是注意大括号中是逗号,用来分隔常量列表,不是分号,因为结构要声明结构成员的类型,是声明语句,而枚举里面的常量都是int类型的,只需给出常量列表就行了。
意思和联合有点像,一个枚举变量,同一时刻只能取一个枚举列表的值。(和联合完全不一样了。。。扯来联想比较一下把)
enum spectrum{ red, orange, yellow, green, blue, violet }; //specturm为标记名,因此可以把enum specturm当作一个类型来使用,花括号里的标识符枚举了enum spectrum类型可能有的值。
//默认时,枚举列表中的常量被指定为整数0,1,2等等
//你也可以选择常量具有的整数值(花括号里面的这些值是常量)
//这样声明了以后,blue,red...这些就变成了整型。
printf("%d%d",red,orange);
//输出01
enum levels{ low = 100 ,medium = 500, high = 2000}; // 注意仍然是逗号
//如果没有完全赋值
enum feline{ cat, lynx = 10, puma, tiger}
//那么cat 的默认值是0. lynx,puma,tiger的值分别是10,11,12.
enum spectrum color; //color的值可能是red,orange,yellow,等等
color=red; //枚举变量只能取得枚举列表中的一个值
for(color = red; color <= violet; color++)
...;
严蔚敏数据结构中返回值的实现
typedef enum {ERROR,OK}Status;