news 2026/2/27 21:45:46

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/2/26 3:42:26

人生是一个在探索中不断校准方向的过程。

这句话道破了动态人生的精髓——人生不是执行一份预设的完美计划&#xff0c;而是驾驶一艘无完整海图的船&#xff0c;在航行中不断测绘、修正航向的探险。 这种“探索-校准”模式&#xff0c;是一种极具韧性与智慧的生存哲学。 核心理念&#xff1a;从“路径执行者”到“动态…

作者头像 李华
网站建设 2026/2/24 5:19:53

鸿蒙应用开发:项目实战与经验总结

&#x1f3af; 鸿蒙应用开发&#xff1a;项目实战与经验总结 一、章节概述 ✅ 学习目标 详细介绍鸿蒙应用开发的项目实战流程&#xff08;项目准备、需求分析、系统设计、代码实现、调试与测试、打包与发布&#xff09;提供多个实战项目案例&#xff08;智能待办应用、天气…

作者头像 李华
网站建设 2026/2/25 23:08:01

写了一套几乎无敌的参数校验组件!!!

参数校验这个东西&#xff0c;很多情况下都是比较简单的&#xff0c;用 NotNull、Size 等注解就可以解决绝大多数场景&#xff0c;但也有一些场景是这些基本注解解决不了的&#xff0c;只能用一些其他的方式处理&#xff0c;这样就导致参数校验变成了多层&#xff0c;其实是不利…

作者头像 李华
网站建设 2026/2/24 22:35:51

纺织设备远程监控运维管理平台方案

在纺织行业蓬勃发展的今天&#xff0c;纺织机械作为生产线的核心装备&#xff0c;其稳定运行直接关系到生产效率和产品质量。然而&#xff0c;随着纺织企业规模的扩大和设备的多样化&#xff0c;传统运维方式已难以满足现代纺织生产的需求。该平台通过高度兼容的技术架构&#…

作者头像 李华
网站建设 2026/2/27 11:48:23

DeepSeek-R1一周年回顾与MODEL1新模型技术前瞻

文章回顾了DeepSeek-R1发布一周年的意义&#xff0c;并分析了代码库中出现的MODEL1可能代表的新一代推理模型(R2或全新产品线)。文章探讨了R1如何通过开源策略改变AI推理生态&#xff0c;使模型从"黑箱"变为"白盒"&#xff0c;从结果导向转向过程导向。MOD…

作者头像 李华
网站建设 2026/2/22 12:45:31

<span class=“js_title_inner“>智筑安全防线慧享畅行民生——公安交管部门以科技创新书写新时代答卷</span>

从云端的数据之眼到路面的智慧之治&#xff0c;从指尖的便民服务到城市交通的“绿波”畅行&#xff0c;科技的力量正以前所未有的深度和广度&#xff0c;重塑着道路交通管理的方方面面。近年来&#xff0c;全国公安交通管理部门坚持以人民为中心的发展思想&#xff0c;深入实施…

作者头像 李华