c语言中const关键字和枚举enum的新认识

首先大家思考一个问题,c语言某个源文件中的环境,也就是说哪些前提已知的情况。

(1)在c语言中如何表示一个常量,大家都能想到使用的是宏定义#define。当然了宏定义#define的用法还有其他的,例如寄存器地址,寄存值所表示的类似内存的空间中。

(2)那么如何表示一组常量呢,也就是说多个常量,并且这些常量天然的是被绑定在一起的,答案是使用enum定义一个枚举类型,并将这一组常量包含在一对{}中,并用"="对这些常量进行赋值。

(3)大家再思考一个问题,除了上述2种情况,还有一种情况就是需要用到一段字符串、一段具体的数字、一个"表格"这种情况,最常见的情况例如表示一款设备或芯片的型号"s5pv210",一款芯片的生产日期"20251025",一个时间点"09:12:30"等等。显示中这种情况是存在的,那如何用c语言表示出来呢?大家能想到的是使用一个数组,例如u8 str\[\] = {'s', '5', 'p', 'v', '2', '1', '0'};这样很好,但是存在一种问题就是这个数组是存在全局变量中的,如果是单片机这种内存有限的环境,如果定义一个特别大的"表格"例如一些算法需要用的查表法就是定义了一个很大的表格。总之很容易受限。这个时候就需要用到关键字"const",它修饰的变量是一个常量,const u8 str\[\] = {'s', '5', 'p', 'v', '2', '1', '0'};而且const修饰的常量,如何在后面编写代码的时候被不小心写另外一个数值的时候,编译器会报错。

相关推荐
Hello.Reader14 分钟前
tsrs 技术解析用 Rust 移植 TypeScript 7,类型检查还能怎样提速?
开发语言·rust·typescript
透明的玻璃杯29 分钟前
VS2015+QT 多线程
开发语言·qt
码匠许师傅1 小时前
【C++三方组件】mbedTLS:面向嵌入式的轻量 TLS
开发语言·c++
迪菲赫尔曼1 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测
2601_962885721 小时前
2026 Python 股票数据接口选型指南(横评 + 决策树)
开发语言·python·区块链
Evand J2 小时前
【PMSM例程4】PMSM电阻辨识与模型补偿EKF,MATLAB例程。附下载链接,包运行成功
开发语言·matlab·电机·ekf·卡尔曼·pmsm
王仔小奶2 小时前
Rust 正在接管金融圈?深度拆解一份高薪 FinTech 岗位 JD
开发语言·金融·rust
小王C语言2 小时前
Qt常用控件:多元素控件,纵向列表,表格控件,树状控件
开发语言·qt
fanruitian2 小时前
python 可视化 panda seaborn matplotlib.pyplot
开发语言·python·matplotlib
jnrjian2 小时前
delete file shell 让 AI 写脚本
服务器·开发语言