news 2026/6/10 15:15:34

c语言枚举

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c语言枚举
vincent@ubuntu:~/ch02/2.5$ cat enum.c -n 1 #include <stdio.h> 2 3 // 定义了一个枚举常量列表 4 enum spectrum {red, green, blue}; 5 6 int main(void) 7 { 8 enum spectrum color; // 定义了一个枚举变量 9 color = green; 10 11 switch(color) 12 { 13 case red: // 使用枚举常量来判断 color 的值 14 printf("red\n"); 15 break; 16 case green: 17 printf("green\n"); 18 break; 19 case blue: 20 printf("blue\n"); 21 break; 22 default: 23 printf("unknown color\n"); 24 } 25 26 return 0; 27 }

C 语言中枚举数据是很坑爹的,是一类被阉割了的类型,本来枚举是一种所谓“指定范
围”的整型数据,超出范围便无意义,比如指定颜色变量 color 只能是{1,2,3},分别代表
红绿蓝,给 color 指定别的值在逻辑上应该是讲不通的,因为没有别的颜色了。可惜 C 语
言的枚举纯粹就是整型,可以给他赋任意的整数,并没有体现枚举“指定范围”的特点。
不管如何,上面给出一个范例,展示了如何使用枚举:

上述代码中的第 4 行定义了一个枚举常量列表,事实上在 C 语言中,使用常量有三种
方式:第一,直接使用。第二,宏定义。第三,便是这里的枚举常量,比如例子中的 red、
green 和 blue,代码中并没有给他们赋值,所以他们的值都是缺省的,从 0 开始递增,所
以第 4 行代码相当于:
enum spectrum {red=0, green=1, blue=2};

spectrum 是这个枚举常量列表的标签,作用是可以利用这个标签定义所谓的枚举变量
(事实上就是 int 型变量),如第 8 行所示。之后,我们就可以使用 color 来取得枚举列表
中的各个值了(因为是阉割版的,所以其实你要给 color 赋值为 888 编译器也奈你不何)。
最后明确一点,不管是使用宏来定义常量,还是使用枚举来定义常量,目的只有一个:
增强程序的可读性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:46:02

P0951BA-0E FBP10处理器模块

P0951BA‑0E FBP10 处理器模块简介&#xff1a; P0951BA‑0E FBP10 处理器模块是用于工业自动化系统的核心运算单元&#xff0c;负责接收、处理和控制系统中各类输入输出信号&#xff0c;实现逻辑运算、数据处理和通讯任务。它在控制系统中承担主控角色&#xff0c;为复杂自动化…

作者头像 李华
网站建设 2026/6/10 10:44:23

未来TRO法律程序会变得更友好还是更严苛?

引言 过去几年&#xff0c;TRO已经从“偶发风险”变成跨境卖家的“高频事件”。无论是亚马逊、Temu、eBay还是速卖通&#xff0c;越来越多卖家发现&#xff0c;自己并未收到任何提前警告&#xff0c;账户资金却已经被冻结&#xff0c;店铺被限制&#xff0c;甚至多个平台同时受…

作者头像 李华
网站建设 2026/6/10 10:42:25

手写 Java 线程池:从状态转换到拒绝策略的极致实现

&#x1f680; 引言&#xff1a;为什么要手写线程池&#xff1f; 在日常开发中&#xff0c;我们习惯了 Executors.newFixedThreadPool() 或者直接 new ThreadPoolExecutor()。但你是否思考过&#xff1a; 为什么线程池能让线程“长生不老”而不被销毁&#xff1f;一个 int 变…

作者头像 李华
网站建设 2026/6/10 10:44:51

一文读懂亚马逊SIOC包装测试标准

亚马逊物流中&#xff0c;自有容器运输&#xff08;SIOC&#xff09;包装需通过专项测试保障商品完好。由ISTA与亚马逊联合制定的《ISTA 6-AMAZON.COM-SIOC标准》&#xff0c;是测试核心依据&#xff0c;2016年发布后始终是卖家合规的关键参考。该标准专为亚马逊配送的SIOC商品…

作者头像 李华
网站建设 2026/6/10 10:43:43

2026版最全面Java面试汇总(面试题+答案)

今年的行情&#xff0c;让招聘面试变得雪上加霜。已经有不少大厂&#xff0c;如腾讯、字节跳动的招聘名额明显减少&#xff0c;面试门槛却一再拔高&#xff0c;如果不用心准备&#xff0c;很可能就被面试官怼得哑口无言&#xff0c;甚至失去了难得的机会。 现如今&#xff0c;…

作者头像 李华
网站建设 2026/6/10 10:46:34

惊!IF持续下跌,中科院1区Top或将降为2区

&#x1f525; &#x1f525; &#x1f525; &#x1f525; 《IEEE Transactions on Neural Networks and Learning Systems》由IEEE计算智能学会于 1990 年创刊&#xff0c;在神经网络、机器学习、深度学习及相关交叉领域享有极高的学术声誉和影响力。 值得注意的是&a…

作者头像 李华