编程规范
1头文件
放置接口不放置实现
- 头文件只放置对外接口的声明(函数声明、宏定义、类型定义),内部使用的这些声明不应该放在头文件中
- 变量定义在c文件中,尽量不要使用全局变量作为接口,应通过函数来作为接口。若要使用全局变量,应在c文件中定义,h文件中声明
职责应单一
- 头文件不应包含过多头文件,职责应尽量单一
向稳定方向包含
- 不稳定的模块依赖稳定的模块,当不稳定模块发生变化时不会影响稳定的模块
- 产品依赖于平台,平台依赖于标准库
- 更好的方式是多个模块共同依赖于接口,增强低耦合性
规则
- .c对应.h,用于声明对外公开的接口
- 禁止头文件循环依赖
- .c.h禁止包含用不到的头文件
- .h中添加#define保护
- .h禁止定义变量
- 使用接口只能通过包含头文件实现,禁止使用extern
- 禁止在extern "C"中包含头文件,会有bug
建议
- 一个模块内的多个c文件放在同一个目录,一个模块提供一个.h来整合模块对外接口
- 包含头文件按照固定规则排序(升序,稳定性排序)