/* 范例:9-8 */
#include <stdio.h>
/* 声明 + 定义 (并给初值) */
enum /* 省略类型名称 */
{
one=1,two,three
}enum_a, enum_b=two;
/* 声明自定义列举类型Weather */
enum Weather /* 包含自定义类型名称 */
{
Spring=1,Summer,Autumn,Winter /* 定义初值给列举元素 */
};
void print_Weather(enum Weather m)
{
switch(m)
{
case 1:
printf("春天\n");
break;
case 2:
printf("夏天\n");
break;
case 3:
printf("秋天\n");
break;
case 4:
printf("冬天\n");
break;
}
}
void main(void)
{
enum Weather c; /* 使用TurboC定义Weather类型的变量c时,不可省略enum
*/
printf("c = %d\n",c);
c = Autumn;
printf("enum_a = %d\n",enum_a);
printf("enum_b = %d\n",enum_b);
print_Weather(c);
c = 2; /* c也接受(不适用VC++6) */
c = 2 * Summer; /* 连这样都可以(不适用VC++6) */
print_Weather(c);
c = 100; /* 不检查c 范围(不适用VC++6) */
print_Weather(c);
getchar();
}
程序执行结果:
c = 6758820
enum_a = 0
enum_b = 2
秋天
冬天