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修饰的常量,如何在后面编写代码的时候被不小心写另外一个数值的时候,编译器会报错。

相关推荐
会周易的程序员7 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导7 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan7 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251497 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
是隼人8 小时前
buuctf-pwn xdctf2015_pwn200题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
大衛說9 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
可乐鸡翅yeah_10 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
2601_9622035110 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理10 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
来了就未晚11 小时前
Python基础 学习代码存储与命名规范
开发语言·python·学习