<iostream> #include 中和"iostream"(引号)之间的区别?
Difference between <iostream> and "iostream" (quotes) in #include?
可能的重复项:
#include <文件名>和 #include"文件名"有什么区别? 文件名>
当我编写程序时,我包括像#include <iostream>
这样的库,但也#include "iostream"
是正确的,代码可以编译而没有任何错误或问题。
所以,我想知道< >
和" "
有什么区别?
当你使用 < >
时,编译器只在系统指定的目录(例如,你在include
环境变量中设置的任何内容)中查找标头。
当您使用 " "
时,编译器首先在本地目录中查找,如果失败,则像使用 < >
一样重新搜索。从技术上讲,(即根据标准)不必是"本地"目录,但这就是它基本上在我知道的每个编译器中的工作方式)。
如果您关心的话,标准的官方措辞实际上有点模糊(§16.2/2-3):
表单的预处理指令
# include <h-char-sequence> new-line
在一系列实现定义的位置中搜索由指定唯一标识的标头 <和>分隔符之间的序列,并导致该指令被整个内容替换 的标头。如何指定位置或标识标头由实现定义。和>
表单的预处理指令
# include "q-char-sequence" new-line
导致该指令被指定标识的源文件的全部内容替换 " 分隔符之间的序列。在实现定义的文件中搜索命名源文件 方式。如果不支持此搜索,或者搜索失败,则重新处理指令,就像读取
# include <h-char-sequence> new-line
具有与原始指令相同的包含序列(包括>个字符,如果有)。
双引号 include 用于告诉编译器先在本地目录中查找包含的头文件,然后再在包含目录中搜索它。当您尝试包含代码的本地头文件时,可以看到这种差异。如果使用"<>"包含本地头文件,则编译器将失败,除非您的本地目录是"include"目录路径。
><>只在编译器提供的头文件中查找,而"首先在项目目录中查找,并且仅在编译器提供的头文件中查找,如果没有任何内容。
在源文件旁边添加一个名为 iostream 的文件。现在包含 " 并观察它失败(因为它将获得空文件)或使用 <> 并观察它成功(因为它将忽略本地文件)。
"XXX" - 它在你的一个目录中。 - 它在Microsoft的SDK或任何SDK中(您可以添加
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 在cuda线程之间共享大量常量数据
- 在c代码之间共享数据的最佳方式
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 大小相等但成员数量不同的结构之间的性能差异
- 是否可以用"iostream"包装现有的TCP/OOpenSSL会话
- 类与私有变量的其他类之间的线程安全性
- 如何在cpp文件之间切换窗口?在Qt中
- 线程之间的布尔停止信号
- 需要从 istream 和 ostream 派生 iostream
- basic_iostream和iostream之间的区别
- fstream,ofstream,ostream,iostream之间的区别
- <iostream> #include 中和"iostream"(引号)之间的区别?
- 这是iostream.h和iostream之间的区别吗?
- Windows和OSX之间iostream控制台输出的性能差异
- iostream和命名空间std之间的关系是什么?