[经验分享] const指南

[复制链接]
483|64
timfordlare 发表于 2026-2-13 19:42 | 显示全部楼层
const 默认是局部文件可见。这比宏 #define 更安全,因为宏是全局替换,容易污染命名空间。
lzmm 发表于 2026-2-13 21:39 | 显示全部楼层
const 仅为编译器语法约束,物理层面其存储地址可通过强制类型转换的指针修改,嵌入式中严禁这样做
hearstnorman323 发表于 2026-2-14 10:01 | 显示全部楼层
只要可能,就使用const。让编译器成为你的盟友,而不是敌人。
everyrobin 发表于 2026-2-14 10:35 | 显示全部楼层
const 变量的值在程序中任何位置都不能被修改
jonas222 发表于 2026-2-14 11:15 | 显示全部楼层
避免返回局部变量的 const 引用/指针
abotomson 发表于 2026-2-14 11:46 | 显示全部楼层
通过const_cast可移除const属性,但修改原为const的变量会导致未定义行为
vivilyly 发表于 2026-2-14 15:05 | 显示全部楼层
严禁通过指针强制修改 const 变量的值,除非有特殊硬件需求,否则会破坏程序的常量约束,引发不可预测的 bug。
modesty3jonah 发表于 2026-2-15 09:46 | 显示全部楼层
如果变量不应该被修改,就声明为const
sdlls 发表于 2026-2-15 11:26 | 显示全部楼层
全局const变量默认具有内部链接,需显式声明extern以共享;局部const变量存储于栈区,生命周期随作用域结束。
sesefadou 发表于 2026-2-15 12:27 | 显示全部楼层
const 会影响代码生成的效率
primojones 发表于 2026-2-15 13:09 | 显示全部楼层
强制不可变性,提升代码安全性与可读性
51xlf 发表于 2026-2-15 13:29 | 显示全部楼层
volatile:阻止编译器优化对该地址的访问。
const:防止软件误写操作。
nomomy 发表于 2026-2-15 14:14 | 显示全部楼层
指针与const的组合。这是const最易混淆的地方
earlmax 发表于 2026-2-15 15:04 | 显示全部楼层
在嵌入式开发中,全局数组、查找表、字符串常量,务必加上 const,让它们去吃 Flash,省下 RAM 给栈和堆用。
mickit 发表于 2026-2-15 15:36 | 显示全部楼层
通过const成员函数向调用方传递“不修改对象状态”的信号。
rosemoore 发表于 2026-2-15 16:06 | 显示全部楼层
在C/C++中,const关键字用于定义不可修改的变量、指针、函数参数及成员函数,其核心作用是增强代码安全性和可读性,同时可能触发编译器优化。
wengh2016 发表于 2026-2-15 17:00 | 显示全部楼层
优先用 const 替代 #define定义常量,利用编译器的类型检查,减少 bug
claretttt 发表于 2026-2-15 17:38 | 显示全部楼层
MCU 的 RAM 资源通常远小于 Flash,将所有不变的常量 / 数据用 const 修饰,能直接释放 RAM 空间,这是嵌入式开发的必备技巧。
chenci2013 发表于 2026-2-15 18:36 | 显示全部楼层
所有程序运行中无需修改的大体积数据,都必须用 const 修饰,分配到 Flash
hilahope 发表于 2026-2-15 18:57 | 显示全部楼层
只要你的函数只读不改参数,参数一定要加 const。这不仅能防止自己写错,还能向调用者传达清晰的 API 语义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0