1. 注释,版权,作者,重大修订记录等信息
2. 防重入开关,也就是常见的
#ifndef _XXX_XXX_H //必须确保header guard宏名永不重名
#define _XXX_XXX_H
//<头文件内容>
#endif
3. C++ 编译器自适应开关,也就是常见的
//.h文件头部
#ifdef __cplusplus
extern "C" {
#endif
//<函数声明>
//.h文件尾部
#ifdef __cplusplus
}
#endif
4. #include ,头文件里应该 include 所有该文件中所使用的其它接口头文件。这里有也有两层含义,一是说头文件应做到自包含,即使用头文件的用户不需要再为该头文件 include 其它头文件;二是从模块耦合内聚角度来说,头文件中本身不应该 include 太多其它头文件,一般就是通用数据类型定义, include 其它头文件意味着强耦合——引用了其它头文件中的类型定义,宏或是函数。
5. 接口声明及注释,包括函数,结构体等,但不应该出现全局变量,和 static 类型的接口,这些都应该是放置在 C 文件中。函数的注释中应该包括功能说明,参数使用方法,可能的返回值,及其它注意事项。结构体的注释中应该包括每个成员变量所表示的含义。我们也提倡自注释,即通过合理的命名达到见名知意的效果。
6. 接口总体上来说是越少,越简单越好,时刻检查头文件中是否存在冗余的信息,及时删除,合并。