正确的包含顺序是什么

What's the correct include order

本文关键字:顺序 是什么 包含      更新时间:2023-10-16

在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++ 标准库标头符合该原则。

如果不是这种情况,那么支持文档应该这样说。

Alpabeticization只是你的审稿人思维方式的一种表达,我认为它不是特别有用。

对于它的价值,我倾向于将更多的"通用"包含放在列表的上方(例如stdlib.hstdio.h几乎在顶部)。

恐怕你的审稿人编程知识很低。我的建议 - 做他想做的事(通常你的技能和大自我一样低),但忘记字母顺序。顺序必须是合乎逻辑的,而不是按字母顺序排列的