## import 和 include 区别
### 应用场景
**import** 主要用于模块化编程,将其他模块的代码导入当前模块中使用。**include** 主要用于包含其他文件的内容,例如头文件或外部文件。
### 语法构造
```cpp
// import 语法
import
// include 语法
#include
```
### 依赖关系
**import** 会在编译时直接将被导入模块的代码插入到当前模块中,建立强依赖关系。因此,如果被导入模块发生改变,需要重新编译整个程序。**include** 只是将文件的内容复制到当前文件中,建立弱依赖关系。如果包含的文件发生改变,只需重新编译包含该文件的模块。
## 详细对比
### 1. 编译方式
**import** 会在编译阶段将被导入模块的代码直接嵌入到当前模块中。这是通过编译器将被导入模块的符号表合并到当前模块的符号表中来实现的。**include** 只是简单地将包含文件的内容复制到当前文件中,不会进行符号表的合并。
### 2. 依赖性
**import** 建立强依赖关系,因为被导入模块的任何更改都会导致整个程序重新编译。**include** 建立弱依赖关系,因为包含文件中的更改只会导致包含该文件的模块重新编译。
### 3. 效率
**import** 速度较慢,因为编译器需要在编译时处理被导入模块的代码。**include** 速度较快,因为编译器只需要复制包含文件的内容。
### 4. 适用场景
**import** 适用于需要模块化编程的场景,例如将代码拆分成多个可重用的模块。**include** 适用于需要包含外部文件内容的场景,例如包含头文件或外部库。
**import** 和 **include** 是 C/C++ 中两种不同的预处理器指令,用于引入外部代码或文件。**import** 建立强依赖关系,适合模块化编程,而 **include** 建立弱依赖关系,适合包含外部文件内容。选择哪种指令取决于具体的应用场景和需求。