枚举(C语言)

在C语言中,枚举是用户定义的数据类型,允许用户定义一组被命名的常量,这里枚举类型成员默认是从0开始,之后顺位延后的枚举类型为1,2,3,4一直到最后一个枚举成员。

在这个过程中,如果某个枚举成员被赋予特定值的话,后面的成员会从前一个成员的值开始递增,例如:在我们之前通讯录中使用了枚举成员来替换数字0~7。

cpp 复制代码
enum Option
{
	EXIT,
	ADD,
	DEL,
	SEARCH,
	MODIFY,
	SHOW,
	SORT
};

在之前咋们通讯录里,这个分别代表0~7的数字,被我们替换成了字符的形式。这个就是枚举类型的定义。

cpp 复制代码
switch (input)
		{
		case ADD:
			AddConcate(&con);
			break;
		case DEL:
			DelConcate(&con);
			break;
		case SEARCH:
			SearchConcate(&con);
			break;
		case MODIFY:
			MudifyConcate(&con);
			break;
		case SHOW:
			ShowConcate(&con);
			break;
		case SORT:
			SortConcate(&con);
			break;
		case EXIT:
			//保存通讯录到文件中
			SaveConcate(&con);
			DestroyConcate(&con);
			printf("退出系统\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
        }

那么我们在之前的通讯录中如何使用枚举类型成员呢,在我们使用switch语句的时候,case之后就可以将我们的枚举成员变量名写上去啦,case ADD代表了以下代码或函数实现的是增加联系人的功能。

我们在控制台运行代码的过程中,我们只输入1,就可以运行add的代码了,但是你可能会有疑问,为什么嘞?使用1和add不是效果一样嘛,对,就程序运行的结果是一样的,但是我们在使用代码的时候用了枚举类型,可以提高代码可读性,并且在维护代码的过程中更加容易。

相关推荐
重生之我是Java开发战士几秒前
【笔试强训】Week3:重排字符串,分组,DNA序列
算法
We་ct2 分钟前
LeetCode 97. 交错字符串:动态规划详解
前端·算法·leetcode·typescript·动态规划
phltxy2 分钟前
深度解析:Spring Cloud Gateway 从入门到实战
java·开发语言
热心网友俣先生6 分钟前
2026年第二十三届五一数学建模竞赛B题四问参考答案+多算法对比
算法·数学建模
无敌昊哥战神7 分钟前
【LeetCode 37】解数独 (Sudoku Solver) —— 回溯法详解 (Python/C/C++)
c语言·c++·python·算法·leetcode
AI进化营-智能译站11 分钟前
ROS2 C++开发系列08-传感器数据缓存与指令解析方式之数组、向量与字符串实战
开发语言·c++·缓存·ai
风筝在晴天搁浅13 分钟前
LeetCode 162.寻找峰值
算法·leetcode
shjita17 分钟前
记录java执行中的一个错误细节
java·开发语言
AI进化营-智能译站24 分钟前
ROS2 C++开发系列14-Lambda表达式处理传感器数据流|文件IO保存机器人实验日志
开发语言·c++·ai·机器人
itzixiao30 分钟前
L1-067 洛希极限(10分)[java][python]
java·开发语言·算法