01
代码规范与风格
命名规范 · 缩进排版 · 注释规范 · 代码块组织
命名风格注释
02
数据类型与变量
int8_t vs int · 全局/局部 · static · const · volatile
类型staticconst
03
指针与内存管理
指针基础 · 动态内存 · 泄漏检测 · 野指针
指针malloc内存
04
函数设计
长度控制 · 参数传递 · 返回值 · 内联 · 函数指针
内联指针设计
05
宏定义与枚举
带参宏陷阱 · #undef · 枚举替代 · switch-case
宏枚举switch
06
结构体与联合体
对齐填充 · 位域 · 联合体 · 嵌套设计
structunion对齐
07
数组与字符串
边界检查 · strncpy · 柔性数组 · 多维数组
安全字符串边界
08
控制流优化
减少嵌套 · 提前返回 · switch优化 · goto场景
优化goto循环
09
文件操作
打开/关闭 · 错误处理 · 二进制/文本 · 缓冲区
FILE错误缓冲
10
预处理与编译
条件编译 · 头文件保护 · #pragma once · 预定义宏
预处理编译宏
11
模块化设计
头文件设计 · 内部/外部链接 · 接口分离 · 耦合控制
模块接口解耦
12
错误处理
返回值检查 · errno · assert · setjmp/longjmp · 日志
错误断言日志
13
代码复用
函数抽象 · 回调 · 通用数据结构 · _Generic
复用回调泛型
14
性能优化
循环展开 · 缓存友好 · 分支预测 · 内联汇编
优化缓存汇编
15
安全编程
缓冲区溢出 · 整数溢出 · 格式化漏洞 · 空指针
安全溢出防护
16
多线程编程
线程管理 · 互斥锁 · 条件变量 · 原子操作 · 安全队列
线程锁并发
17
中断与实时系统
ISR编写 · 临界区 · 任务优先级 · 看门狗 · 时间测量
中断实时看门狗
18
测试与调试
CUnit/Unity · 覆盖率 · 静态分析 · GDB · Valgrind
测试调试Valgrind
19
版本控制
Git工作流 · 代码审查 · 分支策略 · 提交规范
Git分支审查
20
文档与注释
Doxygen · API文档 · 设计文档 · README
文档Doxygen注释
21
代码重构
坏味道 · 提取函数 · 重命名 · 简化条件 · 分解
重构简化坏味道
22
设计模式
单例 · 工厂 · 观察者 · 状态机 · 策略
模式状态机架构
23
数据结构
链表 · 栈/队列 · 二叉树 · 哈希表 · 动态数组
链表哈希树
24
算法实现
排序 · 查找 · 字符串匹配 · 递归 · 复杂度
排序查找递归
25
网络编程
Socket · TCP/UDP · 非阻塞IO · select/poll/epoll · HTTP
网络Socketepoll
26
嵌入式C
寄存器操作 · 位操作 · 低功耗 · Bootloader · 通信协议
嵌入式位操作Bootloader
27
编译与构建
Makefile · CMake · 交叉编译 · 静态/动态库 · 依赖
构建CMake库
28
代码审查
审查清单 · 常见问题 · 流程 · 工具 · 反馈
审查清单协作
29
持续集成
CI/CD · 自动化测试 · 质量门禁 · 构建部署
CI/CD自动化质量
30
综合实战
架构设计 · 规范落地 · 质量度量 · 技术债务
实战架构度量