常量 const
const 表示承诺不修改。编译器会拦下明显赋值错误,也向读者表明意图。
1. 例子
| 1 | const float VREF = 3.3f; |
| 2 | const int MAX_LEN = 64; |
| 3 | |
| 4 | /* VREF = 5.0f; // 编译错误 */ |
| 5 | printf("%.1f\n", VREF); |
2. 与 #define 对比
| 对比项 | const | #define |
|---|---|---|
| 类型 | 有 | 无(纯文本) |
| 调试 | 易查看 | 常被替换掉 |
| 作用域 | 遵守块作用域 | 预处理全局替换 |
| 推荐场景 | 一般常量 | 宏开关、头文件保护 |
3. 实际例子:配置表
| 1 | const uint16_t SAMPLE_PERIOD_MS = 10; |
| 2 | const uint8_t I2C_ADDR = 0x68; |
| 3 | const float KP = 1.2f; |
| 4 | /* 一眼看出这些是只读配置 */ |