当前位置: 首页 > news >正文

C/C++包含头文件的两种方式:尖括号方式 (<>)和双引号方式 (““)的区别

在 C 语言中,头文件的包含方式分为两种:

  1. 尖括号方式 (<>)

    #include <header.h>
    

    特点

    • 用于包含系统提供的头文件(标准库或第三方库)。
    • 编译器会在指定的系统路径中查找头文件(如标准库路径或其他预定义路径)。
    • 通常用于标准库头文件,例如 <stdio.h><stdlib.h> 等。

    查找顺序

    • 先在系统路径中查找。
    • 如果找不到,则报错。

注意:如果是有Makefile文件,那么是可以把自己写的头文件的路径包含到上面提到的“预定义路径”中,从而实现用尖括号也能找到相应的头文件。比如下面的Makefile代码:

CFLAGS := -Wall -O2 -g
CFLAGS += -I $(shell pwd)/include
  • CFLAGS 定义了编译选项,包括:
    • -Wall:启用所有常见的编译警告。
    • -O2:启用中等优化。
    • -g:生成调试信息。
    • -I $(shell pwd)/include:将当前目录下的 include 目录添加到头文件搜索路径中。

  1. 双引号方式 ("")

    #include "header.h"
    

    特点

    • 通常用于包含用户定义的头文件
    • 编译器会先在当前文件所在目录查找头文件。
    • 如果当前目录找不到,再转而到系统路径中查找。

    查找顺序

    • 先在当前文件所在目录查找。
    • 如果找不到,再在系统路径中查找。

主要区别

  • 查找路径

    • #include <header.h>:直接查找系统路径,不会优先查找当前目录。
    • #include "header.h":优先查找当前目录,然后再查找系统路径。
  • 使用场景

    • <header.h> 用于标准库或明确位于系统路径中的头文件。
    • "header.h" 用于项目中的自定义头文件。

实际应用中的建议

  1. 标准库头文件:始终使用 <>,例如:

    #include <stdio.h>
    
  2. 项目中的头文件:使用 "",例如:

    #include "myheader.h"
    
  3. 避免歧义:如果系统路径中存在与自定义头文件重名的头文件,使用 <>"" 的查找顺序会影响结果,应尽量避免这种冲突。


http://www.mrgr.cn/news/80364.html

相关文章:

  • ubuntu服务器木马类挖矿程序排查、及安全管理总结
  • 【CSS in Depth 2 精译_079】第 13 章:渐变、阴影与混合模式概述 + 13.1:CSS 渐变效果(上)——使用多个颜色节点
  • 深度学习——激活函数、损失函数、优化器
  • 简单了解一下 Go 语言的构建约束?
  • F-Cooper论文精读
  • Apache Kylin最简单的解析、了解
  • 基于区块链技术的新能源管理平台
  • 【Linux】结构化命令
  • 前端项目初始化搭建(二)
  • 从 Router 到 Navigation:HarmonyOS 路由框架的全面升级与迁移指南
  • 流程引擎Activiti性能优化方案
  • Y3编辑器教程5:触发器进阶使用(镜头、UI、表格、函数库、排行榜、游戏不同步)
  • Linux+Docker onlyoffice 启用 HTTPS 端口支持
  • union find算法 c++
  • soul大数据面试题及参考答案
  • linux sysrq的使用举例
  • Vue组件相关记录
  • 【CSS in Depth 2 精译_079】第 13 章:渐变、阴影与混合模式概述 + 13.1:CSS 渐变效果(一)——使用多个颜色节点
  • python请求SSL问题
  • 深入分析 Java 中的 NoSuchMethodException 异常及解决方法