#include <filename.h> 和 #include “filename.h” 有什么区别?

核心区别:头文件查找顺序不同

这是两种包含方式的本质差异,编译器会遵循不同的查找规则:

  1. #include <filename.h>:系统标准查找路径 编译器会直接跳过当前源文件所在目录 ,优先去系统预设的标准头文件目录中查找头文件:

    • 常见标准目录:/usr/include/usr/local/include,以及编译器 / 开发环境自带的头文件目录(如 GCC 的内置目录)。
    • 查找逻辑:只在系统配置的标准路径中搜索,找不到则直接报 "头文件未找到" 编译错误,不会回溯当前项目目录。
  2. #include "filename.h":先本地,后系统 编译器遵循 "先本地、后系统" 的查找顺序,分两步:

    • 第一步:优先在当前源文件所在的目录中查找头文件(即项目本地目录);
    • 第二步:如果本地目录未找到,再按照#include <filename.h>的规则,去系统标准目录中查找。
相关推荐
七歌杜金房8 小时前
我终于又有了自己的 Linux 电脑
linux·debian·mac
郝学胜_神的一滴20 小时前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
tntxia1 天前
linux curl命令详解_curl详解
linux
扛枪的书生1 天前
Linux 网络管理器用法速查
linux
见过夏天1 天前
C++ 基础入门完全指南
c++
顺风尿一寸2 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode2 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫2 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
用户805533698033 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
BadBadBad__AK3 天前
线段树维护区间 k 次方和
c++·数学·算法·stl