包含头文件的更好方法是什么? #包括<>其次是#include“”或其他?

时间:2011-01-19 07:19:16

标签: include c-preprocessor

  

可能重复:
  what is the difference between #include <filename> and #include “filename”
  C/C++ include file order/best practices

头文件和源文件中的include语句应该以C ++的顺序排列? #include&lt;&gt;然后是#include“”或其他?

另外,源文件的头文件是否应该在源文件中的所有include语句之前?

5 个答案:

答案 0 :(得分:7)

我更喜欢按此顺序加入:

  • 首先是标准库。
  • 然后是第三方图书馆。
  • 最后,我自己写的标题。

答案 1 :(得分:4)

一般的经验法则是在一个顺序中包含标题,以便最大限度地检测到您自己的标题之一本身无法包含所需的全部内容。即包括第一个。但是因为对于你所包含的所有标题都不可能这样做,这只是一种模糊的指导方针,不会伤害并且可能会有所帮助。

当你有很多标题时,请尝试更加系统化。

喜欢,按照他们实现的目标对它们进行分组(如[windows.h]后跟一些需要[windows.h]的MS标题),和/或按字母顺序排列。

最后,不要在这上面花太多时间。 : - )

干杯&amp;第h。,

答案 2 :(得分:1)

没有更好或更坏,他们服务于不同的目的。 #ncude ""应该用于项目中的文件或非系统安装的直接依赖项。其中#include <>适用于(例如Linux下)的/ usr / include或simialr文件夹,也称为系统库。

答案 3 :(得分:1)

只需遵循项目的现有约定,如果它有任何#include指令。如果没有,只要你保持一致,你做什么并不重要。

答案 4 :(得分:0)

这与你是否在自己的行上放置开口花括号一样重要。我建议你选择一个你更喜欢的,并保持一致。