C语言的枚举类型(enumeration)

      枚举(enumeration)是一系列命名的整形常量。枚举的例子有,一个星期里每一天的名称,钱币的币值等。如美国硬币币值的枚举定义:

enum coin{penny,nickel,dime,quarter,half-dollar,dollar};

      以下代码声明money为枚举类型coin的变量:

enum coin money;

//使用枚举类型变量
money=dime;
if(money == quarter)
    printf("Money is a quarter.\n");

      理解枚举的要点是,每个符号都代表一个整数值。这样,诸符号都可以用于使用整值的任何场合(比如switch语句中)。每个符号都取大于其前导者的一个值,第一个符号的值是0。


      注意:枚举中的dollar,quarter等符号只是一个整数值的名字,不是字符串。试图将money作为字符串输出是无效的。

      所以实际上,输入/输出枚举符号的程序是相当繁琐的。以下代码演示了用文字形式显示枚举变量money中放置的硬币种类:

switch(money) {
  case penny: printf("penny");
    break;
  case nickel: printf("nickel");
    break;
  case dime: printf("dime");
    break;
  case quarter: printf("quarter");
    break;
  case half_dollar: printf("half_dollar");
    break;
  case dollar: printf("dollar");
}


      把枚举值翻译成可读字符串只能靠编码实现,因此它们在不产生这种转换的例程中最为有用。

你可能感兴趣的:(C)