1、头文件
头文件依赖是导致编译时间过长的罪魁祸首
1.1头文件只包含对外的接口声明,不应包含内部使用的函数。
1.2头文件只包含声明,实现都应放入cpp。
1.3头文件职责要单一
1.4头文件向稳定方向包含
1.5禁止头文件循环依赖
1.6禁止包含无用的头文件,减少依赖
1.7头文件自包含:该头文件包含所有自己编译通过需要的头文件,不要让使用自己的文件去先包含一些头文件才能让自己编译通过。
1.8用#define来避免头文件被多次包含
1.9禁止头文件中定义变量
1.10只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量
1.11禁止在extern "C"中包含头文件。
1.12一个模块通常包含多个.c文件,建议放在同一个目录下,目录名即为模块名。为方便外部使用者,建议每一个模块提供一个.h,文件名为目录名。
1.13 如果一个模块包含多个子模块,则建议每一个子模块提供一个对外的.h,文件名为子模块名。说明:降低接口使用者的编写难度。
1.14同一产品统一包含头文件排列方式。
头文件依赖是导致编译时间过长的罪魁祸首
1.1头文件只包含对外的接口声明,不应包含内部使用的函数。
1.2头文件只包含声明,实现都应放入cpp。
1.3头文件职责要单一
1.4头文件向稳定方向包含
1.5禁止头文件循环依赖
1.6禁止包含无用的头文件,减少依赖
1.7头文件自包含:该头文件包含所有自己编译通过需要的头文件,不要让使用自己的文件去先包含一些头文件才能让自己编译通过。
1.8用#define来避免头文件被多次包含
1.9禁止头文件中定义变量
1.10只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量
1.11禁止在extern "C"中包含头文件。
1.12一个模块通常包含多个.c文件,建议放在同一个目录下,目录名即为模块名。为方便外部使用者,建议每一个模块提供一个.h,文件名为目录名。
1.13 如果一个模块包含多个子模块,则建议每一个子模块提供一个对外的.h,文件名为子模块名。说明:降低接口使用者的编写难度。
1.14同一产品统一包含头文件排列方式。