下面详细讲解一下C语言中枚举(enum)的完整使用攻略。
枚举的定义
C语言中的枚举是一种用户自定义的数据类型,它允许我们定义一组命名的常量。枚举常量被称为枚举值(enum value)。
在C语言中枚举的定义格式为:
enum 枚举类型名{
枚举值1,
枚举值2,
……
枚举值n
};
其中,枚举类型名是一个标识符,它是这个枚举类型的名称;枚举值是一组常量,多个枚举值之间用逗号隔开。
举个例子:
enum Weekday{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
在这个例子中,我们定义了一个枚举类型Weekday,它包括七个枚举值,分别为Monday、Tuesday、Wednesday、Thursday、Friday、Saturday和Sunday。其中Monday的枚举值为0,Tuesday的枚举值为1,以此类推,Sunday的枚举值为6。
枚举的使用
我们可以使用枚举类型定义变量,也可以直接使用枚举值。枚举变量的定义格式为:
enum 枚举类型名 枚举变量名;
例如,我们可以这样定义一个Weekday类型的变量:
enum Weekday today;
我们也可以直接使用枚举值,如:
printf("Today is %dth day of the week.\n", Tuesday);
当然,我们也可以将枚举值赋值给枚举变量:
today = Monday;
在使用枚举类型定义函数参数时,通常需要先定义一个枚举类型的别名,例如:
typedef enum Weekday{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}WeekdayType;
这样定义之后,我们就可以使用WeekdayType作为函数参数的类型了:
void PrintWeekday(WeekdayType day){
switch(day){
case Monday:
printf("Today is Monday.\n");
break;
case Tuesday:
printf("Today is Tuesday.\n");
break;
case Wednesday:
printf("Today is Wednesday.\n");
break;
case Thursday:
printf("Today is Thursday.\n");
break;
case Friday:
printf("Today is Friday.\n");
break;
case Saturday:
printf("Today is Saturday.\n");
break;
case Sunday:
printf("Today is Sunday.\n");
break;
default:
printf("Invalid input.\n");
}
}
在这个例子中,我们定义了一个PrintWeekday函数,它的参数是一个WeekdayType类型的变量day。使用switch语句判断day是哪一天,并输出对应的字符串。
示例说明
下面给出两个示例说明枚举的使用。
示例一
#include <stdio.h>
enum Color{
Red,
Green,
Blue
};
int main(){
enum Color color = Red;
printf("The color is %d.\n", color);
color = 1; //将Green的枚举值1赋值给color
printf("The color is %d.\n", color);
return 0;
}
在这个示例中,我们定义了一个Color枚举类型,其中包括了三种颜色Red、Green和Blue。我们首先将color赋值为Red枚举值(默认值为0),输出color的值为0。然后将Green的枚举值1赋值给color,输出color的值为1。
示例二
#include <stdio.h>
typedef enum Gender{
Male,
Female
}GenderType;
void PrintGender(GenderType gender){
if(gender == Male){
printf("The gender is male.\n");
}
else if(gender == Female){
printf("The gender is female.\n");
}
else{
printf("Invalid input.\n");
}
}
int main(){
GenderType gender = Female;
PrintGender(gender);
return 0;
}
在这个示例中,我们先使用typedef定义了一个GenderType类型,它是一个枚举类型。然后定义了一个PrintGender函数,它的参数是一个GenderType类型的变量gender。函数判断gender是男性还是女性,并输出对应的字符串。最后在主函数中定义了一个gender变量为Female枚举值,调用PrintGender函数输出“The gender is female.”。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C enum(枚举) - Python技术站