区别_c++头文件包含路径说明">
在C++中,#include 是用于包含头文件的预处理指令。根据使用的是尖括号 还是双引号 " ",编译器查找头文件的方式有所不同。
#include
使用尖括号时,编译器会在标准系统目录中查找指定的头文件。这些目录通常包含编译器自带的标准库头文件(如 、 等)或系统级头文件。
查找路径一般包括:
- C++标准库的安装路径
- 操作系统提供的头文件目录
- 通过编译器选项(如
-I)额外指定的系统路径
例如:
#include#include
这类写法告诉编译器:去系统路径里找这些通用的、标准的头文件。
立即学习“C++免费学习笔记(深入)”;
#include "header"
使用双引号时,编译器优先在当前源文件所在目录或项目指定的本地目录中查找头文件,如果找不到,再回退到系统路径中搜索。这种形式通常用于包含用户自定义的头文件,比如你自己写的 myclass.h 或模块化的接口文件。
例如:
#include "myheader.h" #include "utils.h"
编译器会先在当前文件的目录下查找 myheader.h,如果没有找到,才会按照系统路径继续搜索。
实际查找顺序总结
不同编译器行为略有差异,但一般遵循以下顺序:
对于 #include "filename":
- 当前源文件所在的目录
- 项目中通过编译选项指定的包含目录(如用
-iquote指定的路径) - 回落到
#include的查找路径(即系统路径)
对于 #include
- 直接从系统头文件目录开始查找
- 包括标准库路径和用
-I指定的额外路径
使用建议
- 使用
#include包含标准库或第三方库头文件 - 使用
#include ""包含项目内部自定义头文件 - 保持一致性,有助于代码可读性和构建系统的正确性
基本上就这些。理解这两种写法的区别,有助于避免头文件找不到的问题,也能让项目结构更清晰。











