我在Visual Studio 2010中工作。我在Project Properties中添加了一个目录 - >链接器 - >一般 - >其他目录
如果我使用
,项目就会编译 "file.h"
但如果我使用
则不行 <file>
答案 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