相信很多人懂这个问题,也很多人没想过,包括我,今天看书想到了就写下来。
先看程序(抱歉在linux下没有找到舒服的可以复制terminal的工具,只好截图了,将就着看看)
注释的就先不看了,看那几行没有注释的enum coordinate_type 表示一个枚举(Enumeration)类型。枚举类型的成员是常量,它们的值由编译器自动分配,例如定义了上面的枚举类型之后,RECTANGULAR就表示常量0,POLAR 表示常量1。如果不希望从0开始分配,可以这样定义:enum coordinate_type { RECTANGULAR = 1, POLAR };
这样,RECTANGULAR就表示常量1,而POLAR 表示常量2。枚举常量也是一种整型,其值在编译时确定,因此也可以出现在常量表达式中,可以用于初始化全局变量或者作为case 分支的判断条件。注意:枚举常量是不占用内存的,它们在编译时被全部求值,只有定义了enum 变量才会占用内存。