C/C++ #include<> 和 #include""的区别

摘要:
我们都听说过使用#include程序将直接在标准函数库中查找文件。使用#include“”程序将首先在当前目录中查找文件。如果找不到文件,它将在标准函数库中找到文件。因此,一般来说,当我们引用标准函数库中的头文件时,使用#include<>可以更有效,但实际上,它的搜索顺序非常严格:1.#include>1.在编译器设置的include路径中搜索;2.如果在命令行中编译,请在系统的INCLUDE环境变量中搜索。

我们都听过这样的说法:

使用#include<> 程序会直接到标准函数库中找文件
使用#include"" 程序会会先从当前目录中找文件,如果找不到会再到标准函数库中找文件

所以,一般情况下我们引用标准函数库中的头文件时,用#include<>能有更高的效率,但是其实它的查找顺序非常严格:

1.#include<>

1.在编译器设置的include路径内搜索;
2.如果是在命令行中编译,则在系统的INCLUDE环境变量内搜索。

2 #include”“
1.在包含当前include指令的文件所在的文件夹内搜索;
2.如果上一步找不到,则在之前已经使用include指令打开过的文件所在的文件夹内搜索,如果已经有多个被include的文件,则按照它们被打开的相反顺序去搜索;
3.如果上一步找不到,则在编译器设置的include路径内搜索;
4.如果上一步找不到,则在系统的INCLUDE环境变量内搜索。

所以,要注意的一点就是,如果我们自己写的头文件,而不是标准库函数中的,那么引用这个头文件要使用#include"",而不能使用#include<>,因为我们自己写的头文件并不在编译器设置的路径内,使用#include<>会提示无法找到。

参考链接:

C/C++ #include<> 和 #include""的区别

免责声明:文章转载自《C/C++ #include&amp;lt;&amp;gt; 和 #include""的区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ios 设置label的高度随着内容的变化而变化9.8Go之函数之宕机(panic)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

boost asio 学习(五) 错误处理

http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio?pg=6 5. Error handling 接下来我们需要注意的话题是错误处理。换句话说就是函数抛出异常时发生了什么 Boost::asio 给予用户两种选择来处理。错误通过han...

在WindowsXP下 VC6.0 编译安装Boost库 Step by Step CHRIS

要使用例如正则表达式类的话就需要编译了。为了不浪费自己High的心情,我还是决定完全编译一下Boost库。首先从Boost的老巢http://www.boost.org/下载。下载完成以后是一个安装文件(其实就是进行自动解压缩的)。选择你的目录解压缩Boost库。然后我们开始对其进行编译我所下载的版本是1.33.1。 1.cmd 2.进入安装VC的目录例如...

Linux使用PAM锁定多次登陆失败的用户(重置次数)原理后续补充----

  linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁。Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户。 1、 vim /etc/pam.d/sshd    (远程ssh)   限制用户远程登录   在#%PAM-1.0的下面,即第二行,添加内容,一定...

[转]天龙八部服务器端Lua脚本系统

一、Lua脚本功能接口 1. LuaInterface.h/.cpp声明和实现LuaInterface。 LuaInterface成员如下: //脚本引擎 FoxLuaScriptmLua ; //注册器 LuaCFuncRegistermFuncRegister; //场景关联 Scene*mOwner; //已经读取的脚本表 IDTablem_Sc...

kernel 目录 解析

核心源码的顶层是/usr/src/linux目录,在此目录下你可以看到大量子目录: arch 这个子目录包含了所有体系结构相关的核心代码。它还包含每种支持的体系结构的子目录,如i386。 include  这个目录包括了用来重构核心的大多数include文件。对于每种支持的体系结构分别有一个子目录。此目录中的asm子目录中是对应某种处理器的符号连接,如i...

Qt 访问网络

一、前言 Qt 中访问网络使用 QNetworkAccessManager,它的 API 是异步的,这样在访问网络的时候不需要启动一个线程,在线程里执行请求的代码。(但这一点在有时候需要阻塞时就是个麻烦了) 需要注意一点的是,请求响应的对象 QNetworkReply 需要我们自己手动的删除,一般都会在 QNetworkAccessManager::fin...