news 2026/4/23 14:08:18

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/4/23 11:37:08

React Native鸿蒙:Card卡片圆角样式

React Native鸿蒙&#xff1a;Card卡片圆角样式 在移动应用UI设计中&#xff0c;卡片式布局已成为现代应用的标准设计语言。本文深入探讨如何在OpenHarmony 6.0.0平台上使用React Native 0.72.5实现优雅的卡片圆角样式&#xff0c;分析平台适配要点、样式渲染机制及性能优化策略…

作者头像 李华
网站建设 2026/4/20 17:01:49

超详细!网络安全知识入门及学习流程

第一章&#xff1a;网络安全的基本概念和术语 网络安全是指保护网络系统、硬件、软件、数据以及用户的隐私和权益&#xff0c;防止其受到未经授权的访问、篡改、窃取或破坏。以下是一些网络安全的基本概念和术语&#xff1a; 漏洞&#xff08;Vulnerability&#xff09;&…

作者头像 李华
网站建设 2026/4/21 21:06:58

基于PLC的全自动洗车控制系统

基于PLC的全自动洗车控制系统设计与实现 第一章 绪论 随着汽车保有量持续增长&#xff0c;洗车服务的高效化、标准化需求日益迫切。传统人工洗车模式存在效率低下、耗水量大、清洗质量参差不齐、人工成本高的问题&#xff0c;而简易半自动洗车设备则面临工序衔接不畅、安全防护…

作者头像 李华
网站建设 2026/4/23 11:39:03

基于JAVA的二手书交易平台开题报告(1)

目录 项目背景目标与意义功能模块设计技术选型创新点预期成果 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 项目背景 随着环保意识增强和循环经济理念普及&#xff0c;二手书交易需求显著增长。传统线…

作者头像 李华
网站建设 2026/4/23 13:18:58

内网监控工具翻身!Uptime Kuma+cpolar 实现远程运维自由

Uptime Kuma 的核心功能是 724 小时监测各类网络服务和设备的在线状态&#xff0c;包括网站、TCP 端口、MQTT 物联网服务等&#xff0c;监测到异常后可通过多渠道推送告警信息&#xff0c;同时支持多语言界面、轻量化部署&#xff0c;能适配 Windows、Linux、树莓派等多种运行环…

作者头像 李华
网站建设 2026/4/23 11:38:57

亲测好用8个降AI率工具推荐 千笔·专业降AI率智能体帮你解决AIGC难题

AI降重工具的崛起&#xff1a;让论文更“自然” 在如今的学术写作中&#xff0c;AI生成内容&#xff08;AIGC&#xff09;已经成为一种常见现象。无论是本科生还是研究生&#xff0c;在撰写论文时都可能借助AI工具进行初步创作或辅助写作。然而&#xff0c;随之而来的高AIGC率和…

作者头像 李华