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

枚举深入解析

1、枚举的本质

(1)枚举在C语言中其实是一些符号常量集。直白点说:枚举定义了一些符号,这些符号的本质就是int类型的常量,每个符号和一个常量绑定。编译器对枚举的认知就是符号常量所绑定的那个int类型的数字。

(2)枚举中的枚举值都是常量。枚举符号常量和其对应的常量数字相对来说,数字不重要,符号才重要。

(3)枚举值

  • 在 C 语言中,枚举(enum)类型的定义里允许给不同的成员赋相同的整数值,这是语法上完全合法的。也就是说,两个枚举成员的名字可以对应同一个常量值。
  • 虽然合法,但通常不推荐这么做,除非你有明确理由(比如为了兼容旧代码、别名等),否则会降低代码可读性。
  • 不指定枚举所对应的数字,让编译器自动分配,编译器自动分配的原则是:从0开始依次增加。如果用户自己定义了一个值,则从那个值开始往后依次增加。

2、C语言为何需要枚举?

(1)代码的可读性:枚举提供了一个有意义的名字来表示一组相关的常量,这使得代码更加易于理解和维护。

3、宏定义和枚举的区别

(1)宏定义和枚举都可以用一个有意义的名字来表示一个常量,但两者还是有区别的:

  • 枚举是将多个有关联的符号封装在一个枚举中,而宏定义是完全散的;
  • 当我们要定义的常量是一个有限集合时,适合用枚举;
  • 定义的常量符号之间无关联,不适合用枚举。

http://www.dtcms.com/a/391267.html

相关文章:

  • Qt中delete与deleteLater()的使用
  • AD5621(单通道缓冲电压输出DAC)芯片的详细用法
  • vLLM的面试题
  • 最优控制3 -- 动态规划-一个解析解的例子
  • 深入分析大众点评 Ajax 接口:直接请求 JSON 数据高效获取评论
  • 京东零售张科:DataAI Infra会成为驱动未来的技术基石
  • Java 运维中的一些常用命令
  • 用 go-commons 打造一套最小可行监控体系
  • 广东省省考备考(第一百零二天9.19)——言语(拔高突破第二节课)
  • 在vscode中,在powershell 下,如何进入子目录?
  • 易语言源码怎么制作软件 易语言源码和模块怎么做成软件
  • 4-2〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸目录遍历漏洞-B
  • 【Javaweb】http协议-请求与响应
  • 内网穿透系列十三:wstunnel 一款通过 Websocket 或 HTTP2 隧道传输的内网穿透工具
  • 【开关电源篇】自激振荡开关电源原理详解-从模块解析到故障维修
  • SpringBoot+Vue实现图片上传
  • C++ 函数指针与排序策略
  • 12分钟讲解Python核心理念
  • 01数据结构-串和KMP算法
  • 前端性能优化实用方案(三):骨架屏提升30%用户感知速度
  • NVR设备ONVIF接入平台EasyCVR视频融合平台智慧小区视频监控一站式建设方案
  • window XP环境下配置VC6.0的Win32汇编语言开发环境
  • 【算法】0_算法工程师常见算法题
  • 免费插件分享 | BaseTool
  • sk04.【scikit-learn基础】--『监督学习』之 线性回归
  • Ubuntu终端切换WiFi
  • eBest渠道商管理软件:快消品渠道数字化的“破局利器”
  • 基于protues的电子时钟仿真与模拟
  • FastProperty 高效的属性读写设置
  • 【开题答辩全过程】以 基于Java的失物招领平台为例,包含答辩的问题和答案