c++ - 正确的包含顺序是什么

标签 c++ c include preprocessor include-path

在 gerrit 上得到 -1,因为我使用以下包含顺序:

#include <aaa/b.h>
#include <aaa/d.h>
#include <aaa/f.h>
#include <aaa/h.h>
#include <aaa/bbb/c.h>
#include <aaa/bbb/ccc/ddd/e.h>
#include <aaa/bbb/ccc/ddd/eee/a.h>
#include <aaa/bbb/ccc/ddd/eee/g.h>

我的审阅者希望我使用以下字母顺序(.h 文件):

#include <aaa/bbb/ccc/ddd/eee/a.h>
#include <aaa/b.h>
#include <aaa/bbb/c.h>
#include <aaa/d.h>
#include <aaa/bbb/ccc/ddd/e.h>
#include <aaa/f.h>
#include <aaa/bbb/ccc/ddd/eee/g.h>
#include <aaa/h.h>

哪个顺序是正确的?我确信我的方法要好得多,但我得到了 -1。

最佳答案

头文件通常是这样编写的,以便您可以在使用时按照您喜欢的任何顺序包含它们。 C 和 C++ 标准库头文件符合该原则。

如果情况并非如此,那么支持文档应该这么说。

字母化只是审阅者思维方式的一种表达,我认为这不是特别有帮助。

就其值(value)而言,我倾向于将更多“通用”包含内容放在列表的较高位置(例如,stdlib.hstdio.h 几乎位于顶部)。

关于c++ - 正确的包含顺序是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45097373/

相关文章:

c++ - 包含文件不工作 C++

N 维 vector 的 C++ 模板化别名

c - 重新分配指针?

c - 尽管遵循以下格式规范,位图写入程序仍无法生成可读图像

c - 如何减少我的 C 程序的开销?

php - try catch 失败的包含

c++ - 使用包含宏扩展定义宏

c++ - 使用 C++ 绑定(bind)编译 OpenCL

c++ - 如何在mfc应用程序中显示浮点值

c++ - Visual C++ 2015 Tools for Windows 桌面安装程序无法打开