#include < > 与 #include “ “的区别

1. 查找的目录不同:

  • #include <> 表示编译器直接从系统头文件库目录中查找相应头文件(对于一些常用的函数,例如 printf,系统已经写好并封装起来了,直接调用即可)。例如在 Visual Studio 2013 中,编译器会直接在 <Visual Studio 2013 安装目录>下查找 stdio.h 头文件,上述路径就是系统头文件库目录,如下图所示。如果在此目录下找不到相应的头文件,编译器会终止查找并报错。
    在这里插入图片描述
  • #include" " 表示默认从项目当前目录中查找头文件,所谓项目当前目录,就是项目工程文件(*.vcxproj)所在的目录,如下图所示:
    在这里插入图片描述
  • 如果在项目当前目录下查找失败,再从项目配置的头文件引用目录中查找,所谓项目配置的头文件引用目录,就是在项目工程中设置的头文件引用目录,在 Visual Studio 编译环境中如下图所示。在 VSCode GCC 编译环境中,一般通过在 Makefile 文件中使用 -L 参数指定引用目录。
    在这里插入图片描述
  • 如果项目配置的头文件引用目录中仍查找失败,最后再从系统头文件库目录里查找头文件。
  • 注意:虽然 #include"" 的查找范围更广,但这并不意味着,不论是系统头文件,还是自定义头文件,一律选用 #include"" 包含。因为 #include"" 的查找顺序存在先后关系,如果项目当前目录或引用目录下存在和系统头文件库目录下重名的头文件,那么编译器在当前目录或引用目录查找成功后,将不会继续查找,所以存在头文件覆盖的问题。另外,对于系统头文件,使用 #include<> 包含,查找时一步到位,程序编译的效率也会相对更高。

2. 使用场景不同:

  • #include<> 一般用于包含系统头文件,如 stdlib.h ;
  • #include"" 一般用于包含自定义头文件,如 test.h。
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值