嵌入式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 头文件重构与优化 合并冗余 · 拆分过大 · 消除死代码