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

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

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

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

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

    • 第一步:优先在当前源文件所在的目录中查找头文件(即项目本地目录);
    • 第二步:如果本地目录未找到,再按照#include <filename.h>的规则,去系统标准目录中查找。
相关推荐
Yeats_Liao3 小时前
物联网接入层技术剖析(一):从select到epoll
java·linux·后端·物联网·struts
一只小逸白3 小时前
LeetCode Go 常用函数速查表
linux·leetcode·golang
文青小兵3 小时前
云计算Linux——数据库MySQL读写分离、数据库备份、恢复(十八)
linux·运维·服务器·数据库·mysql·云计算
Ghost Face...3 小时前
PCI总线配置核心实现与架构解析
linux·运维·架构
上弦月-编程3 小时前
Java类与对象:编程核心解密
java·开发语言·jvm
akarinnnn3 小时前
深入理解内存函数:原理、应用与优化
c语言·网络·数据结构·算法
Hua-Jay3 小时前
OpenCV联合C++/Qt 学习笔记(二十四)----差值法检测移动物体、稠密光流法跟踪移动物体及稀疏光流法跟踪移动物体
c++·笔记·qt·opencv·学习·计算机视觉
大大杰哥3 小时前
从 Volatile 到 ThreadLocal:Java 线程安全机制备忘
java·开发语言·jvm
boldiy3 小时前
如何在MAC电脑中实现自动切换windows快捷键
windows·macos
崇山峻岭之间4 小时前
matlab绘制复杂曲线
开发语言·matlab