c++ #include是怎么样工作的?


在C++中,`#include` 指令是预处理器指令之一,它的作用是在编译之前将指定的文件内容插入到当前源文件中。这是实现代码重用和模块化编程的一种重要手段。

具体来说,当你写下类似这样的代码:


#include <iostream>

或者


#include "myheader.h"

编译器(实际上是预处理器)会查找并读取指定的文件(`` 或 `"myheader.h"`),然后将这些文件的内容直接插入到 `#include` 指令所在的位置。这样,你的源文件就“包含”了这些文件的内容,从而可以使用它们定义的类、函数、宏等。

- 使用尖括号 `< >` 时,编译器会在标准库路径下查找文件。这通常用于包含标准库头文件。

- 使用双引号 `""` 时,编译器会首先在包含该 `#include` 指令的源文件所在的目录查找文件,如果找不到,则会继续在标准库路径下查找。这通常用于包含用户自定义的头文件或项目特定的头文件。

通过这种方式,`#include` 指令使得C++程序能够组织成多个源文件,每个源文件负责程序的不同部分,同时又可以相互共享代码和数据。