一次定义多个常数。
例如,用我们的程序处理问题时,涉及星期几。 你可能需要把星期一转换成数字1,把星期二转换成数字2,数字7。 虽然也可以不使用enum关键字而使用define进行定义,但是我觉得大家很麻烦。 因为必须一个个地定义。 星期几没关系。 只有七天。 月的话,一年有12个月的话,写12个#include
enum week {Mon=1,Tue,Wed,Thu,Fri,Sat,Sun};
int main () )
{
printf('%d ',Tue;
返回0;
}
这样定义后,Mon的值为1,Tue的值为2,Wed的值为3,一次类推。
然后,可以使用定义为使用define之后的常数的7个值。
如果不在开头写Mon=1,则Mon的默认值为0,从0开始增长。 示例: enum color {red,blue,green,yellow};
这样定义后,red的值为0,blue的值为1,并且一次增加。
中途分配值时: enum color {red,blue,green=5,yellow};
在中,默认情况下,blue从red增加到0。 green是定义的值5。 然后,green之后的值都从5开始增加。
当然,也可以为枚举的每个变量赋值。 这样做,一切都和define中定义的一样。 如果枚举中未指定值,则更改自上一个赋值以来
量开始了,一次增加一个。
二、限定变量范围
例如,我们的APP应用程序处理有关月球的东西。 很明显,月亮只能取1-12中的一个数字。 为了保证程序的正确性和健壮性,必须使用枚举。 #包含
enum Month {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec};
int main () )
{
enum Month a=Feb;
printf('%d ',a );
返回0;
}
例如,这样定义的枚举类型a的可能值仅仅是12个变量中的一个变量,当给出其它变量时,编译器报告错误。
可以通过以下方法使用枚举:
1、定义枚举的同时声明变量:枚举month { Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec} a,b;
现在已经声明了两种枚举类型a和b
2、定义枚举后,声明变量。 enum Month {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec};
enum Month a=Feb;
3、匿名枚举变量enum {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec} a;
这样,只能使用名为a的枚举类型的变量,不能定义其他枚举类型。
4、typedefenum是为了定义一个数据类型,其类型的变量值在enum定义的范围内为typedef enum {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,seee
日期a,b;
注意与宏定义的差异:
enum用于定义一组宏定义常量的区别,相当于一组#definexxxx。 当然,随后的标识符也可以用作类型标识符。 typedefenum用于定义数据类型,该类型的变量值只能在enum定义的范围内。 两者在这一点上没有差别。
注:不能在同一程序中定义同名的枚举类型。 此外,不同枚举类型中不能存在同名的命名常量
转载: http://blog . net/xing jiarong/article/details/47275971
参考: https://blog . net/wo _ Yan _ Zhao 1220/article/details/12906197