嵌入式C头文件设计规范指南
📁 30章 · 从入门到规范
01
头文件概述
为什么需要头文件 · 与源文件关系 · 嵌入式角色
02
头文件基本结构
文件头注释 · 包含卫士 · 类型定义 · 函数声明 · 宏
03
包含卫士 (Include Guard)
#ifndef vs #pragma once 对比与选择
04
文件头注释规范
版权 · 作者 · 日期 · 描述 · 修改历史
05
标准包含顺序
系统头文件 · 第三方库 · 项目内部排序规则
06
类型定义规范
typedef · 结构体/联合体/枚举命名与风格
07
函数声明规范
函数原型 · 参数命名 · 返回值 · extern 使用
08
宏定义规范
常量宏 · 函数宏 · 条件编译宏 · 命名注意事项
09
头文件依赖管理
最小化包含 · 前向声明 · 避免循环依赖
10
头文件与模块化设计
模块接口与实现分离 · 信息隐藏
11
命名空间管理
前缀避免冲突 · 全局命名空间污染
12
条件编译
平台相关代码隔离 · 调试/发布切换
13
内联函数
static inline 使用场景 · 与宏对比
14
const 与 volatile 在头文件
常量定义 · 只读数据 · 硬件寄存器映射
15
断言与静态断言
assert · static_assert 放置位置
16
版本控制与兼容性
头文件版本号 · API 兼容 · 废弃声明
17
头文件与文档生成
Doxygen 注释 · 自动生成 API 文档
18
头文件测试
编译测试 · 链接测试 · 接口一致性检查
19
常见反模式
万能头文件 · 过度包含 · 宏滥用 · 类型混乱
20
头文件与 MISRA-C
MISRA-C 对头文件的要求与约束
21
头文件与 AUTOSAR
AUTOSAR 分层与命名要求
22
头文件与 RTOS
任务间共享数据 · 中断服务接口
23
头文件与硬件抽象层 (HAL)
HAL 设计模式 · 寄存器映射头文件
24
头文件与单元测试
Mock 头文件 · 测试桩 (Stub) 设计
25
头文件与代码审查
审查清单 · 常见问题 · 自动化工具
26
头文件与代码生成
从模型生成 · 从 IDL 生成
27
多编译器兼容性
#pragma · 属性(attribute) 处理
28
头文件与 C++ 兼容
extern "C" · C/C++ 混合编程
29
头文件与安全编码
防止缓冲区溢出 · 整数溢出 · 指针误用
30
头文件重构与优化
合并冗余 · 拆分过大 · 消除死代码