包含次序标准化可增强可读性,避免依赖。次序为:C库、C++库、其他库的.h、项目内的.h,即:
C系统文件
C++系统文件
其他库头文件
本项目内头文件
项目内头文件按照项目源码的目录树结构排序, 不能出现 UNIX 目录别名 (alias) .
(当前目录) 或 ..
(上级目录). 例如, 应该按如下方式导入 google-awesome-project/src/base/logging.h
:
#include "base/logging.h"
总结:
(1)避免多重包含
(2)前置声明是为了降低编译依赖,防止修改一个头文件引发多米诺效应
(3)内联函数的合理使用可提高代码的执行效率
(4)-inl.h可提高代码可读性
(5)标准化函数参数顺序可提高可读性和易维护性
(6)包含文件的名称使用 .
和 ..
虽然方便却易混乱 ,却易混乱,使用完整项目路径更清晰、美观。