#include ““和#include <>区别
区别 include
2023-09-14 09:12:44 时间
在 C++ 中,使用 #include “” 和 #include <> 引入的头文件是有区别的。
#include “” 会在当前源文件所在的目录和预处理器的包含路径中搜索头文件。
#include <> 会在预处理器的包含路径中搜索头文件。
预处理器的包含路径(即头文件的搜索路径)是由编译器决定的。在 g++ 编译器中,预处理器的包含路径包括:
使用 -I 选项指定的路径
编译器默认的系统头文件目录(/usr/include和/usr/local/include)
使用 -isystem 选项指定的路径
使用 #include “” 和 #include <> 最大的区别在于,使用 #include “” 的时候,头文件会在当前目录搜索,而使用 #include <> 时头文件不会在当前目录搜索。
使用 #include <> 时搜索的顺序为:
在编译器默认的系统头文件目录中搜索。
在使用 -I 选项指定的额外目录中搜索。
使用 #include “” 时搜索的顺序为:
在当前目录中搜索。
在使用 -I 选项指定的额外目录中搜索。
在编译器默认的系统头文件目录中搜索。
举个例子:
假设当前源文件所在的目录是 /home/user/src,且这个目录中有一个头文件 myheader.h。还假设系统的头文件目录是 /usr/include,并且 /usr/include 中有一个名为 myheader.h 的头文件。
那么,当使用 #include “myheader.h” 时,会优先在 /home/user/src 目录中搜索 myheader.h,如果没有找到,再在预处理器的包含路径中搜索。
而使用 #include <myheader.h> 时,会直接在预处理器的包含路径中寻找。
相关文章
- 【消息队列】从各方面比较下kafka、activemq、rabbitmq、rocketmq之间的区别
- NULL, '0',0 '0'的区别
- Android 区别普通Touch方法和Scroll
- spring boot:thymeleaf模板中insert/include/replace三种引用fragment方式的区别(spring boot 2.3.3)
- svn checkout与git clone的区别:svn当项目已经checkout过自动拉取最新版本代码,而git会报错
- SQL Server中clustered与nonclustered的区别
- Http、Socket、WebSocket之间联系与区别
- SAP S/4HANA里extension include view和extension view的区别
- Atitti css transition Animation differ区别
- js模块系统require和import区别与联系
- emplace_back与push_back方法的区别
- git 拉取和获取 pull 和 fetch 区别
- POI的getLastRowNum() getPhysicalNumberOfRows()区别