在 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> 时,会直接在预处理器的包含路径中寻找。

#include ““和#include <>区别相关推荐

  1. 每日一题(13)—— #includefile.h 与 #include “file”的区别

    #include<file.h> 与 #include "file"的区别? #include<file.h>:编译器从标准库路径开始搜索file.h: # ...

  2. include和require区别

    很多时候需要函数重用,引用其他文件中的函数.这时候就用到了以下几种方式. include和require的区别: include require 引用时 在使用时候加载 在初始时加载 异常 如果加载的 ...

  3. C语言中,#include的用法:#include 和 #include区别

    C语言中,#include的用法:#include "" 和 #include<>区别 采用 " ":依次搜索当前目录.包括/I编译开关的路 ...

  4. php的 include_once 什么意思,【后端开发】php关于include_once与include之间的区别详解...

    include如果引入两个文件,都有一个相同的函数名,那么就会发生重定义的错误.使用include_once可以避免此错误,一般都_once用的比较多.应该根据实际情况需求include和_once的 ...

  5. Makefile中指示符“include”、“-include”和“sinclude”的区别

    指示符"include"."-include"和"sinclude" 如果指示符"include"指定的文件不是以斜线开 ...

  6. jsp:include标签与include指令的区别

    <!-- 把a.jsp和b.jsp包含到index.jsp里面一起编译,静态包含,先包含在编译 --> 而用include指令加载文件时,是将加载文件和Jsp页面合并成一个新的Jsp页面后 ...

  7. JSP中include指令和include动作的区别

    include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如果 ...

  8. Android: Custom View和include标签的区别

    Custom View, 使用的时候是这样的: <com.example.home.alltest.view.MyCustomViewandroid:id="@+id/customVi ...

  9. C语言中,#include 和#include 的区别和注意点

    C语言中包含文件有两种包含符号,一个是<>尖括号,另一个是""双引号.那么这两个有什么区别呢? 首先在本地建立一个空文件,命名为stdio.h. 然后再建立一个C文件, ...

最新文章

  1. 【No.3 Ionic】超级逗表情 App
  2. Kafka删除topic Note: This will have no impact if delete.topic.enable is not【另外强烈推荐一个kafka小工具】
  3. mysql 触发器 定时触发_mysql 触发器和存储过程组合使用,实现定时触发操作
  4. 第一百五十期:Java程序员必备:异常的十个关键知识点
  5. [你必须知道的.NET]第二十六回:认识元数据和IL(下)
  6. 第十二届蓝桥杯青少年组国赛C++中级组 第1题 -- 第3题(python3实现)
  7. MacBook取消自启动程序
  8. 网络协议:传输层(http://java-mzd.iteye.com/blog/1007577)
  9. 冷高轮时间王思聪吃热狗windows电脑壁纸下载
  10. python哪些模板引擎比较_3 个 Python 模板库比较
  11. Linux 十四 修改文件操作权限 用户文件权限详解
  12. div、p、span标签如何做到首行缩进两个字符
  13. 量子计算机 液体核磁共振,用液体核磁共振实现量子计算
  14. 美颜SDK架构技术分析
  15. 音响设备常用连接头及音视频线材的制作方法
  16. 阅读Logback文档笔记--Logback的Appender配置
  17. 阿里云数加案例-美柚
  18. Java算法:牛客网字节跳动笔试真题算法Java版1-27题
  19. 《未来简史》一、主导世界力量的形成与崩塌
  20. excel高效之删除空行

热门文章

  1. 光伏储能容量优化MATLAB论坛,微电网中电池储能的容量配置及优化
  2. 创建软RAID5阵列
  3. Java 环境JDK下载、安装以及环境变量配置详细图解
  4. 【图解数据结构】排序全面总结(一)
  5. Graphql是什么
  6. IMX8开发板Ubuntu20系统下外设界面功能测试-迅为i.MX8MM
  7. Crosswalk 集成到 Android Studio
  8. uchar和char、schar的区别
  9. NGINX工作原理解析
  10. 搜索引擎蜘蛛的基本原理