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

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

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

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

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

    • 第一步:优先在当前源文件所在的目录中查找头文件(即项目本地目录);
    • 第二步:如果本地目录未找到,再按照#include <filename.h>的规则,去系统标准目录中查找。
相关推荐
NamoAmitabha1281 小时前
libpng12-0 1.2.54-1ubuntu1.1 (amd64 binary) in ubuntu xenial
linux·ubuntu20.4
aramae1 小时前
模拟实现strcmp()(C语言)
c语言·开发语言·后端
Madison-No72 小时前
搭建项目测试环境
linux·运维·服务器·python
泡海椒2 小时前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
吴声子夜歌2 小时前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
Beyond_System|系统之外3 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
景熙55234 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
xiaoye-duck4 小时前
《Linux 网络编程》深入理解 IP 协议(二):网段划分、私有 IP 与 NAT 地址转换
linux·网络·ip
汉克老师4 小时前
GESP2026年9月认证C++六级( 第三部分编程题(1、数组划分))精讲
c++·gesp·小学生·学c++编程
千里码aicood5 小时前
基于PLC与机器视觉的智能分拣控制系统设计
c++·自动化·plc