核心区别:头文件查找顺序不同
这是两种包含方式的本质差异,编译器会遵循不同的查找规则:
-
#include <filename.h>:系统标准查找路径 编译器会直接跳过当前源文件所在目录 ,优先去系统预设的标准头文件目录中查找头文件:- 常见标准目录:
/usr/include、/usr/local/include,以及编译器 / 开发环境自带的头文件目录(如 GCC 的内置目录)。 - 查找逻辑:只在系统配置的标准路径中搜索,找不到则直接报 "头文件未找到" 编译错误,不会回溯当前项目目录。
- 常见标准目录:
-
#include "filename.h":先本地,后系统 编译器遵循 "先本地、后系统" 的查找顺序,分两步:- 第一步:优先在当前源文件所在的目录中查找头文件(即项目本地目录);
- 第二步:如果本地目录未找到,再按照
#include <filename.h>的规则,去系统标准目录中查找。