包括“file.h”vs <file>有什么区别?</file>

时间:2011-11-16 23:14:11

标签: c++ c visual-studio-2010 include

我在Visual Studio 2010中工作。我在Project Properties中添加了一个目录 - &gt;链接器 - &gt;一般 - &gt;其他目录

如果我使用

,项目就会编译
 "file.h"

但如果我使用

则不行
 <file>

3 个答案:

答案 0 :(得分:11)

您可能假设< >隐式地将.h添加到文件名的末尾。这不是真的。无论您使用< >还是" ",对文件名称都没有意义。它基本上告诉实现应该遍历的顺序包括查找头文件的目录。

引用标准:

  

形式的预处理指令
      # include <h-char-sequence> new-line
  搜索一系列实现定义的位置,以查找由<>分隔符之间的指定序列唯一标识的标头,并使标头的整个内容替换该指令。如何指定地点或识别标题是实现定义的。

     

形式的预处理指令
    # include "q-char-sequence" new-line
  导致由"分隔符之间的指定序列标识的源文件的全部内容替换该指令。以实现定义的方式搜索命名的源文件。如果不支持此搜索,或者搜索失败,则会重新处理该指令,就好像它已读取

一样      

# include <h-char-sequence> new-line
  使用原始指令

中相同的包含序列(包括>个字符,如果有的话)

答案 1 :(得分:5)

“”适用于本地文件和&lt;&gt;来自C库中的文件。

答案 2 :(得分:1)

包含仅在存在此类文件时才有效。在您的情况下,可能是因为存在 file.h 文件,但请注意 file

您可能认为它应该在任何地方都可以使用 iostream.h iostream This is because they are two different files which mean two different things