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

本文详细解释了C语言中#include&lt;file.h&gt;与#include“file.h”的区别。前者指示编译器从标准库路径开始搜索指定的头文件,而后者首先从当前目录开始搜索,如果未找到则继续在标准库路径中查找。


#include<file.h> 与 #include “file”的区别?






#include<file.h>:编译器从标准库路径开始搜索file.h;

#include “file”: 编译器先从当前目录下搜索file.h,找不到,再到标准库路径搜索file.h。





### 解答 #### **`#include "file.h"` `#include <file.h>` 的区别** 两者均为 C/C++ 中引入头文件的预处理指令,但**搜索路径的顺序和用途**不同: --- #### **1. `#include "file.h"`** - **搜索顺序**: 1. **当前源文件所在目录**(用户自定义头文件通常用此方式)。 2. 如果未找到,**再按 `< >` 的方式搜索系统路径**(如编译器标准库路径)。 - **用途**: - 通常用于包含**项目本地头文件**(如自己编写的 `utils.h`)。 - 示例: ```c #include "my_lib/config.h" // 优先从项目目录查找 ``` --- #### **2. `#include <file.h>`** - **搜索顺序**: - **直接搜索系统预定义的包含路径**(如编译器标准库、系统环境变量指定的路径)。 - 不检查当前目录。 - **用途**: - 通常用于包含**标准库或第三方库的头文件**(如 `<stdio.h>`、`<vector>`)。 - 示例: ```c #include <math.h> // 从系统路径查找数学库 ``` --- #### **关键区别总结** | **指令** | **搜索路径优先级** | **典型使用场景** | |---------------------|----------------------------------|----------------------------| | `#include "file.h"` | 当前目录 → 系统路径 | 项目自定义头文件 | | `#include <file.h>` | 仅系统路径 | 标准库/第三方库头文件 | --- #### **注意事项** 1. **路径格式**: - 可包含子目录(如 `#include "subdir/file.h"` 或 `#include <boost/array.hpp>`)。 2. **编译器选项**: - 系统路径可通过编译器的 `-I` 选项扩展(如 `gcc -I/my/custom/path`)。 3. **错误场景**: - 若用 `" "` 包含系统头文件(如 `#include "stdio.h"`),可能因搜索顺序降低效率(无实质错误)。 - 若用 `< >` 包含本地头文件且未配置路径,会导致编译失败。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值