📘 嵌入式C命名规范
30章 · 避坑指南
🎯 变量命名 · 从入门到实战
1
命名总则:为什么命名是嵌入式C的第一道防线?
可读性·可维护性·防错
2
匈牙利命名法
u8/u16/s32/p/h 前缀规则与裸机场景
3
驼峰命名法 vs 下划线命名法
小驼峰·大驼峰·全小写下划线
4
变量作用域前缀
g_ / s_ / m_ / 局部无前缀
5
数据类型前缀
u8/u16/s32/f/p/h 详细规则
6
模块前缀
UART/I2C/TIM 缩写统一前缀
7
常量与宏定义命名
全大写+下划线 · 函数宏规范
8
枚举命名规范
_E后缀 · 全大写+模块前缀
9
结构体命名规范
_T后缀 · 成员小驼峰/下划线
10
联合体命名规范
_U后缀 · 共享存储意图
11
函数命名规范
动词+名词 · uart_send_byte()
12
文件命名规范
模块名.c/.h · drv_前缀
13
头文件保护宏
__MODULE_NAME_H__ 格式
14
位域与寄存器命名
REG_CTRL_BIT_ENABLE 风格
15
回调函数与函数指针
_cb后缀 · _pfn / _Func
16
临时变量命名
tmp/temp/i/j/k 避坑指南
17
布尔变量命名
is_ / has_ / enable_ 开头
18
状态机变量命名
state枚举 · _handle / _process
19
队列与缓冲区命名
_q / _buf / _ring 后缀
20
错误码与返回值命名
ERR_前缀 · ret/status · OK/ERR
21
避免的命名陷阱
l/1 O/0 · 拼音 · 过短缩写
22
命名长度控制
变量8-24 · 函数15-40字符
23
团队命名规范文档
编写指南 · 示例与检查清单
24
代码审查中的命名检查
快速发现命名问题 · checklist
25
命名与硬件关联
GPIO/中断号/外设地址 · 数据手册
26
跨平台命名策略
IAR/Keil/GCC 兼容性
27
命名与代码生成工具
CubeMX/STM32CubeIDE 风格调整
28
遗留代码命名重构
逐步重构 · 不破坏功能
29
命名与Doxygen注释
生成清晰API文档
30
综合案例:温控系统命名实战
从零开始的完整项目