可能重复:
What is the difference between #include and #include “filename”?
当我编写程序时,我包括了像#include <iostream>这样的库。但是,#include "iostream"也是正确的,代码编译后不会出现任何错误或问题。
所以,我想知道< >和" "有什么区别?
发布于 2012-04-24 19:35:10
当您使用< >时,编译器只在系统指定的目录/目录(例如,您在include环境变量中设置的任何目录)中查找标头。
当您使用" "时,编译器首先在本地目录中查找,如果失败,就像使用< >一样重新搜索。从技术上讲,(即按照标准),它不一定是“本地”目录,但我所知道的每个编译器都是这样工作的。
如果你关心的话,标准中的官方措辞实际上有点模糊(第16.2/2-3节):
表单的预处理指令
# include <h-char-sequence> new-line
在实现定义的位置序列中搜索由<和>分隔符之间的指定序列唯一标识的标题,并将该指令替换为标题的全部内容。如何指定位置或标头是实现定义的。
表单的预处理指令
# include "q-char-sequence" new-line
导致将该指令替换为“分隔符”之间指定序列标识的源文件的全部内容。以实现定义的方式搜索命名源文件。如果不支持此搜索,或者如果搜索失败,则重新处理指令,就像它读取指令一样。
# include <h-char-sequence> new-line
使用原始指令中相同的包含序列(如果包括>字符)。。
发布于 2012-04-24 19:34:30
双引号包含用于告诉编译器先在本地目录中查找包含的头文件,然后再在包含目录中搜索它。当您试图包含您的代码的本地头文件时,您可以看到这种差异。如果使用“<>”来包含本地头文件,编译器将失败,除非您的本地目录是“包含”目录路径。
发布于 2012-04-24 19:34:21
<>只在编译器提供的头文件中查找,而"“首先在项目目录中查找,如果没有,则只查看编译器提供的头文件。
在源文件旁边添加一个名为iostream的文件。现在,包含"“并观察它失败(因为它将获得空文件),或者使用<>并看到它成功(因为它将忽略本地文件)。
https://stackoverflow.com/questions/10304751
复制相似问题