#include <stdio.h>
//enum Weekday只是一个数据类型,
//规定了该类型的变量值必须是哪些
enum Weekday
{
Monday, Tuesday, Wednesday,
Thursday, Friday, Staturday,
Sunday
};
void f(enum Weekday i)
{
//enum Weekday类型的i
//在程序运行期间会转换成
//其所在位置的序号,这个
//序号从0开始,比如Monday对应0
//Friday传递给i后在,程序内部会看作4
//但是程序给enum Weekday i传递值
//或者说赋值只能是枚举中的一周7天中的一个
//不能是其他值
switch(i)
{
case 0:
printf("Monday!\n");
break;
case 1:
printf("Tuesday!\n");
break;
case 2:
printf("Wednesday!\n");
break;
case 3:
printf("Thursday!\n");
break;
case 4:
printf("Friday!\n");
break;
case 5:
printf("Staturday!\n");
break;
case 6:
printf("Sunday!\n");
break;
}
}
int main(void)
{
f(Friday);
return 0;
}
枚举就是把事物所有的可能一一列举出来,枚举变量的值只能是枚举类型中规定的某一种,枚举变量运行期间会转换成对应位置的下标值,该下标值从0开始。
个人感觉枚举只是为了从程序编写的安全角度去考虑。