下面是关于C中枚举的完整使用攻略。
什么是枚举
枚举是一种 C 语言中的数据类型,它可以为一组预定义的整数值定义一个名称,常用于标识符,代替数字。使用枚举可以增强代码可读性和可维护性,减少代码冗余。
声明枚举类型
在 C 语言中,声明枚举类型的语法格式如下:
enum 枚举名 {枚举成员列表};
其中,枚举名是该枚举类型的名称,枚举成员列表包括一系列用逗号分隔的枚举成员。
示例代码如下:
enum colors {red, green, blue};
这个枚举类型定义了三种颜色枚举成员。
枚举成员赋值
默认情况下,枚举成员的值是整数,从 0 开始递增,并且枚举成员的值不能重复。但是,我们可以手动指定枚举成员的值。这种情况下,后面的枚举成员不再是默认递增的,从手动指定枚举成员的值开始递增。
示例:
enum fruits {apple = 0, banana = 2, orange};
以上代码中,apple
的值为 0, banana
的值为 2,orange
的值为 3,因为它是自动递增的。
使用枚举类型
定义好枚举类型之后,可以使用该类型来声明枚举变量,如下:
enum colors c = red;
以上代码定义了一个枚举变量 c
,类型为 colors
,并初始化为 red
。
示例1:使用枚举类型实现Switch语句
下面是一个使用枚举类型实现Switch语句的示例代码:
#include <stdio.h>
enum days {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
int main() {
enum days day = Tuesday;
switch(day) {
case Monday:
printf("Today is Monday");
break;
case Tuesday:
printf("Today is Tuesday");
break;
case Wednesday:
printf("Today is Wednesday");
break;
case Thursday:
printf("Today is Thursday");
break;
case Friday:
printf("Today is Friday");
break;
case Saturday:
printf("Today is Saturday");
break;
case Sunday:
printf("Today is Sunday");
break;
default:
printf("Invalid input!");
}
return 0;
}
示例2:使用带有枚举参数的函数
下面是一个使用带有枚举参数的函数的示例代码:
#include <stdio.h>
enum fruits {apple, banana, orange};
void print_fruit(enum fruits fruit) {
switch(fruit) {
case apple:
printf("This is an apple");
break;
case banana:
printf("This is a banana");
break;
case orange:
printf("This is an orange");
break;
default:
printf("Unknown fruit!");
}
}
int main() {
enum fruits fruit = banana;
print_fruit(fruit);
return 0;
}
以上代码定义了一个带有枚举参数的函数 print_fruit()
,并在主函数中调用该函数打印出指定的水果类型。