差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| 直骨架的研究:代码分析 [2025/10/14 16:07] – 张叶安 | 直骨架的研究:代码分析 [2025/10/17 10:45] (当前版本) – 张叶安 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ``` | + | ```cpp |
| #include " | #include " | ||
| #include < | #include < | ||
| - | ``` | ||
| + | ``` | ||
| 这是 **C++ 的预处理指令(preprocessor directives)语法**,用于在**编译前**由预处理器处理。 | 这是 **C++ 的预处理指令(preprocessor directives)语法**,用于在**编译前**由预处理器处理。 | ||
| - | --- | + | 逐行解释: |
| - | ### 逐行解释: | + | 这是**用户自定义头文件**的包含方式。 |
| - | #### ✅ `#include " | + | 使用双引号 `" |
| - | - 这是**用户自定义头文件**的包含方式。 | + | |
| - | - 使用双引号 `" | + | |
| - | > 先在**当前源文件所在目录**查找这个头文件,如果找不到,再去系统路径找。 | + | |
| - | - 通常用于包含你自己写的头文件,比如某个 SDK 或项目的接口声明。 | + | |
| - | #### ✅ `#include < | + | 先在**当前源文件所在目录**查找这个头文件,如果找不到,再去系统路径找。 |
| - | - 这是**标准库头文件**的包含方式。 | + | |
| - | - 使用尖括号 `< | + | |
| - | > 直接去**系统标准库路径**找这个头文件。 | + | |
| - | - `cmath` 是 C++ 标准库中的数学函数头文件,提供了如 `sin()`, `cos()`, `sqrt()` 等数学函数。 | + | |
| - | --- | + | 通常用于包含你自己写的头文件,比如某个 SDK 或项目的接口声明。 |
| + | |||
| + | 这是**标准库头文件**的包含方式。 | ||
| + | |||
| + | 使用尖括号 `< | ||
| + | |||
| + | 直接去**系统标准库路径**找这个头文件。 | ||
| + | |||
| + | `cmath` 是 C++ 标准库中的数学函数头文件,提供了如 `sin()`, `cos()`, `sqrt()` 等数学函数。 | ||
| + | |||
| + | 总结一句话: | ||
| - | ### 总结一句话: | ||
| 这是 **C++ 的 `#include` 预处理指令语法**,用于引入头文件,双引号用于自定义头文件,尖括号用于标准库头文件。 | 这是 **C++ 的 `#include` 预处理指令语法**,用于引入头文件,双引号用于自定义头文件,尖括号用于标准库头文件。 | ||
| + | |||
| + | |||
| + | ``` | ||
| + | #ifndef CONTAINERS_H | ||
| + | #define CONTAINERS_H | ||
| + | |||
| + | 中间是定义的头文件 | ||
| + | |||
| + | #endif | ||
| + | ```cpp | ||
| + | 这里是一个保护式的声明 | ||
| + | |||
| + | 头文件是 C++ 的“接口说明书”,把“有什么”告诉编译器,把“怎么实现”留给源文件。 | ||
| + | |||
| + | 提供接口(声明) | ||
| + | |||
| + | 类、函数、变量、模板、枚举、常量……只声明,不定义。 | ||
| + | |||
| + | 让 其他源文件 在编译期就知道“这个东西存在,可以调用”,而无需知道它的实现细节。 | ||
| + | |||
| + | |||
| + | |||