1.       枚举类型是用来声明代表整数常量符号名称。由此可见,枚举类型与整数类型有着密切的联系,枚举类型的常量均是int类型

的,它的存在主要是为了提高程序的可读性,后面的例子将会看到。通过enum关键字就可以创建一个新的“类型”并可以给它指

定具体的值。

sizeof(枚举类型) = sizeof(int) = 4

2.       枚举类型的声明:

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

enum关键字,常见新的类型enum spectrum,声明二则是通过新的类型,创建它的变量,注意变量只能取得声明一中所列出的几个值。这方面似乎与结构体的语法十分类似。

3.       枚举常量:

0,1,2,3,4,5等几个整型值。若

出现只是对之间的一个常量赋值,而不对后面的常量赋值,那么这些后面的常量会通过递增自动被赋予值。

        在实际的编程中,枚举常量与整形常量可以混用,当然,整形常量中的一些禁忌同样应该适用于枚举常量,比如常量不能自加或者自减。

4.       强制转换:

GNU编译器下,枚举类型几乎与整形类型通用,当然前提是能容纳下,比如整形常量就可以直接赋值给枚举变量。但是在VC编译器下,则需要做强制转换才行,否则就会出现编译错误

color tree = (color)5;

5.       枚举常量的取值范围:

        给定几个枚举常量,如何计算出这个枚举类型的取值范围呢?

2的幂,并减去1。

如:

  

Enum number { a, b, c = 6, d = 23, e, f};

23,而据其最近的2的幂为32(2的5次幂),则需要5bit就可以容纳,因此其最大值应该为31(32-1)。

       负数情况与上面的计算方法类似。

Enum number { a, b, c = -4, d =2 , e, f};

4(-4的绝对值),需要3bit容纳,另外加上一个符号位,需要4bit,其取值范围是:1000-0111,即-8到7.