关于c预处理器:包含头文件的更好方法是什么?

What is the better way of including a header file? #include<> followed by #include“” or the otherwise?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
what is the difference between #include and #include “filename”
C/C++ include file order/best practices

在头文件和源文件中,包含语句应该以什么顺序出现在C++中?#include<>后跟include"还是其他?

此外,源文件的头文件是否应位于源文件中所有include语句之前?


我希望包括在这个顺序中:

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


一个一般的经验法则是按顺序包含报头,以便最大限度地检测到您自己的报头中的一个没有包含它所需要的所有内容。也就是说,先把它包括进去。但是,由于不可能对所有的头部都这样做,所以这只是一种模糊的指导原则,不会造成伤害,可能会有一些好处。

当你有很多标题时,试着更系统一点。

比如,按照他们的成就(比如[windows.h]后面跟一些需要[windows.h]的ms头文件)和/或字母顺序对他们进行分组。

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

干杯!


只要遵循项目的现有惯例,如果它有任何针对#include的指令。如果没有,只要你始终如一,做什么并不重要。


没有更好或更糟的,它们服务于不同的目的。#ncude""应该用于您的项目中的文件或不在系统范围内安装的直接依赖项。其中#include <>用于(例如在Linux下)位于/usr/include或similar文件夹(也称为系统库)中的嵌入式。


这和你是否把开口花括号放在它们自己的线上一样重要。我建议你选一个你更喜欢的,并且保持一致。