当前位置:嗨网首页>书籍在线阅读

35-枚举类型

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

14.11 枚举类型

可以用枚举类型(enumerated type)声明符号名称来表示整型常量。使用 enum 关键字,可以创建一个新“类型”并指定它可具有的值(实际上, enum 常量是 int 类型,因此,只要能使用 int 类型的地方就可以使用枚举类型)。枚举类型的目的是提高程序的可读性。它的语法与结构的语法相同。例如,可以这样声明:

enum spectrum {red, orange, yellow, green, blue, violet};
enum spectrum color;

第1个声明创建了 spetrum 作为标记名,允许把 enum spectrum 作为一个类型名使用。第2个声明使 color 作为该类型的变量。第1个声明中花括号内的标识符枚举了 spectrum 变量可能有的值。因此, color 可能的值是 redorangeyellow 等。这些符号常量被称为枚举符(enumerator)。然后,便可这样用:

int c;
color = blue;
if (color == yellow)
     ...;
for (color = red; color <= violet; color++)
     ...;

虽然枚举符(如 redblue )是 int 类型,但是枚举变量可以是任意整数类型,前提是该整数类型可以存储枚举常量。例如, spectrum 的枚举符范围是 05 ,所以编译器可以用 unsigned char 来表示 color 变量。

顺带一提,C枚举的一些特性并不适用于C++。例如,C允许枚举变量使用 ++ 运算符,但是C++标准不允许。所以,如果编写的代码将来会并入C++程序,那么必须把上面例子中的 color 声明为 int 类型,才能C和C++都兼容。