当前位置: 首页 > news >正文

C语言-枚举

概念

枚举是一个自定义数据类型,用于为一组整数常量赋予有意义的名字,使代码更易读、更易维护。可以将它理解为“给数字起别名

枚举成员的本质就是一系列整数常量。它们通过赋予有意义的名称,将数字“符号化”,使得代码更易读、更符合人类逻辑

语法结构

enum 枚举类型名 {成员1,          // 默认从0开始成员2,          // 前一个值+1成员3 = 值,     // 显式赋值...成员N//定义成员时也可以一行一行定义,使用习惯上是使用前一种方式成员1,成员2,成员3,
};  // 注意结尾的分号!
enum Weekday {Mon,   // 0Tue,   // 1Wed,   // 2Thu=7,   // 7Fri,   // 8Sat,   // 9Sun    // 10
};
枚举成员的本质上是数值,第一成员默认是0,后续依次加1
如果中途进行赋值,后续的值会在赋值的基础上加1

为什么要使用枚举

在代码中直接出现的、未经解释的数值常量

这些数字没有明确的含义或上下文说明,导致代码难以理解和维护

不使用枚举
#include <stdio.h>int main() {int status = 1;  // 1代表"失败"if (status == 0) {printf("程序成功!\n");} else if (status == 1) {printf("程序失败!\n");  // 这里会输出} else if (status == 2) {printf("程序等待中...\n");}// 问题1:数字0/1/2的意义不直观,需要查文档// 问题2:可能误赋值非法值(如status = 100)return 0;
}
使用枚举
#include <stdio.h>// 定义枚举类型,明确状态含义
typedef enum {SUCCESS,   // 0FAILURE,   // 1PENDING    // 2
} ProgramStatus;int main() {ProgramStatus status = FAILURE;  // 直接使用符号名if (status == SUCCESS) {printf("程序成功!\n");} else if (status == FAILURE) {printf("程序失败!\n");  // 这里会输出} else if (status == PENDING) {printf("程序等待中...\n");}// 优势1:代码自解释,无需注释// 优势2:若修改状态值,只需调整枚举定义// 优势3:编译器可部分检查非法赋值(如赋值字符串会报错)return 0;
}

相关文章:

  • 【打卡】树状数组的操作
  • Linux系统移植①:uboot概念
  • WSL 基础命令
  • DeepSeek+白果AI论文:开启答辩PPT生成的「智能双引擎」时代
  • AI大模型(三)openAI大模型应用
  • 《100天精通Python——基础篇 2025 第20天:Thread类与线程同步机制详解》
  • 『uniapp』uni-share 分享功能 使用例子(保姆级图文)
  • java线程中断的艺术
  • 绿色屋顶和墙壁行业2025数据分析报告
  • 【批量文件夹重命名】如何按照Excel表格对应的关系,批量一对一的重命名文件夹,文件夹按照对应映射关系一对一改名
  • 打破产品思维--启示录:打造用户喜欢的产品--实战6
  • RocketMq的消息类型及代码案例
  • [C++面试] 基础题 11~20
  • 归一化 超全总结!!
  • 编译rk3568的buildroot不起作用
  • pvlib(太阳轨迹)
  • 基于CodeBuddy实现本地网速的实时浏览小工具
  • 算法题(154):合并果子
  • [NOIP 2003 普及组] 麦森数 Java
  • 由浮点数的位级表示判断大小关系
  • 无锡网站/搜索引擎优化的意思
  • 衢州php网站建设/网络营销推广活动有哪些
  • 网上服务旗舰店/网站优化的方法与技巧
  • 网站二级栏目数量/企查查在线查询
  • 武汉光谷网站建设/免费下载百度一下
  • 一个好的网站有什么标准/域名停靠浏览器