HelloWorld

ASM,C,LUA,LINUX(gentoo)
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

枚举类型

Posted on 2011-10-04 17:14  光铭  阅读(340)  评论(0编辑  收藏  举报

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;

Status InitSqList(SqList *L, int InitSize)
{
  ......;
  return OK;
}