首页 > 编程笔记

C++ #include用法详解

在 C++ 编程中,#include 是一条预处理指令,用来在当前文件中引入(插入)其它文件的内容。

C++ 程序在编译之前先要经过预处理阶段,由预处理器执行程序中的预处理指令,并对源代码进行相应的调整,其中就包括执行 #include 指令。

实际使用 #include 指令时,通常引入的是头文件(.h)。头文件内部一般包含的是函数、类等的声明,将它们引入到当前文件后,就可以在当前文件中调用头文件里的函数、类等。

例如,假设 header.h 头文件中的内容是:
void func();
源文件 test.cpp 中的代码如下:
#include "header.h"

int main(){
    func();
}
文件中用 #include 指令将 header.h 文件的内容引入到了当前文件,因此 test.cpp 经过预处理后,包含的代码就变成了:
void func();

int main(){
    func();
}
按照 C/C++ 语言的语法要求,要使用某个标识符(变量、函数、类等),必须在使用之前先声明。虽然在 test.cpp 文件中没有 func() 函数的声明,但是我们借助 #include 指令将 header.h 头文件的内容引入到了当前文件,因此可以使用该函数。

#include <>和""的区别

注意,使用“#include”指令引入头文件时,包裹头文件的名称可以用尖括号<>,也可以用双引号" "

例如:
#include "header.h"
#include <iostream>
如果文件名用尖括号<>括起来,表明这个文件是一个 C++ 标准库中的头文件,编译器会在预定的系统目录中查找该文件。

如果文件名用双引号" "括起来,表明这个文件是用户自己提供的头文件,预编译器会先在当前文件所在的目录中查找,如果找不到,则继续到系统目录中查找。

对于用户自己提供的头文件,必要时可以注明头文件的存储路径,绝对路径和相对路径都可以。例如引入 C 盘下的 header.h 头文件:
#include "C:\header.h"
总之,C++ 标准库提供的头文件推荐用尖括号<>,而用户自己定义的头文件推荐双引号" "

推荐阅读