AI智能摘要
#include是C/C++的预处理指令,用于引用头文件,将内容插入指令位置。用于引用标准或系统头文件(如stdlib.h、stdio.h、iostream),优先在系统路径、编译器include路径及INCLUDE环境变量中查找;""用于引用自定义头文件,优先在文件所在路径查找,随后依次搜索编译器include路径、INCLUDE环境变量及系统路径。使用""时查找范围更广,但可能导致重名头文件覆盖问题,因此标准头文件应使用引用,以确保编译效率和避免错误。
— 此摘要由AI分析文章内容生成,仅供参考。

Loading

1 #include 是什么

#include 是C/C++语言中的一条预处理指令,又叫做文件引用指令,用于引用需要的头文件(.h文件)。#include 指令的预处理过程非常简单,就是将头文件展开并将内容插入到该指令所在的位置,这与复制粘贴的效果相同。

2 <> 和 “” 的用法

在C/C++中,#include 预处理指令后面可以跟两种形式:

  1. #include <file>:
    向外扩展,用于引用标准或系统头文件,如stdlib.h、stdio.h、iostream等,其通常在标准库或系统库目录中
  2. #include “file”:
    向内扩展,用于引用自定义头文件,其通常在项目路径下的目录中

3 <> 和 “” 的搜索路径

编译器对 <> 和 “” 这两种方式引用的头文件的搜索路径和优先级是不同的,其具体如下:

  • <>:
    1. 优先在系统路径查找
    2. 如果上一步找不到,则在编译器设置的include路径内查找
    3. 如果上一步找不到,则在系统的INCLUDE环境变量内查找
  • “”:
    1. 优先在使用include指令的文件所在的路径内查找
    2. 如果上一步找不到,则在编译器设置的include路径内查找
    3. 如果上一步找不到,则在系统的INCLUDE环境变量内查找
    4. 如果上一步找不到,则在系统路径查找

由上可见,使用 “” 包含头文件时,编译器的查找范围更广,但是这并不意味着,不论是系统头文件,还是自定义头文件,一律用 “” 包含。因为编译器对头文件的查找顺序存在先后关系,如果项目路径下存在和系统目录下重名的头文件,那么编译器在第一次查找成功后,将以此为准,停止查找,最终造成头文件被覆盖的问题。因此,在引用标准函数库的头文件时,还是应该用 <> 包含,这样在查找时能一步到位,程序编译也能有更高的效率。

3 thoughts on “[C/C++]#include <> 和 “” 的用法”
  1. 终于搞明白这两种写法的搜索路径区别了,之前总是搞混,谢谢作者详细讲解🤔

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

👤本站访客数: 👁️本站访问量: