2024年10月9日 15:02

This commit is contained in:
许大仙 2024-10-09 07:02:30 +00:00
parent 118990b436
commit 795710e7a4
2 changed files with 83 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -594,8 +594,89 @@ int main() {
## 4.1 概述
* `#include` 指令用于引入标准头文件、
* `#include` 指令用于引入标准头文件、自定义头文件或第三方库的头文件,以便在当前源文件中使用其中定义的函数、变量、宏定义等,如下所示:
![](./assets/4.png)
> [!NOTE]
>
> * ① 一个 `#include` 指令只能包含一个头文件,多个头文件需要多个 `#include` 命令。
> * ② 一个源文件可以导入多个头文件,一个头文件也可以被多个源文件导入(需要注意,`头文件重复`问题)。
> * ③ 标准库头文件、自定义头文件以及第三方库的头文件的扩展名都是 `.h`
## 2.2 包含标准库的头文件
* 引入`标准库头文件`需要使用`尖括号`将文件名包裹起来,如下所示:
```c
// 用于包含标准库头文件或系统头文件。
// 编译器将在系统的标准头文件目录中查找文件。
#include <filename>
```
> [!TIP]
>
> 使用尖括号来引入标准头文件,使用双引号来引入自定义头文件,以便区分!!!
## 2.3 包含自定义头文件
* 引入`自定义头文件`需要使用`双引号`将文件名包裹起来,如下所示:
```c
// 用于包含用户自定义的头文件。
// 编译器首先在当前目录中查找文件,如果未找到,再在标准头文件目录中查找。
#include "filename"
```
> [!TIP]
>
> 使用尖括号来引入标准头文件,使用双引号来引入自定义头文件,以便区分!!!
# 第五章:条件编译
# 第五章C 语言中的预定义宏
## 5.1 概述
* 所谓的预定义宏就是已经预先定义好的宏,我们可以直接使用,无需再重新定义。
* ANSI C 规定了以下几个预定义宏,它们在各个编译器下都可以使用,如下所示:
| 预定义宏 | 说明 |
| ------------------- | ------------------------------------------------ |
| `__LINE__` | 表示当前源代码的行号 |
| `__FILE__` | 表示当前源文件的名称 |
| `__DATE__` | 表示当前的编译日期 |
| `__TIME__` | 表示当前的编译时间 |
| `__STDC__` | 当要求程序严格遵循 ANSI C 标准时该标识被赋值为 1 |
| `__cplusplus` | 当编写 C++ 程序时该标识符被定义 |
| `_WIN32``_WIN64` | 目标平台是 Windows 。 |
| `__linux__` | 目标平台是 Linux。 |
## 5.2 应用示例
* 需求:演示常用的 C 语言预定义宏。
* 示例:
```c
#include <stdio.h>
int main() {
// 禁用 stdout 缓冲区
setbuf(stdout, nullptr);
printf("Date : %s\n", __DATE__);
printf("Time : %s\n", __TIME__);
printf("File : %s\n", __FILE__);
printf("Line : %d\n", __LINE__);
return 0;
}
```
# 第六章:条件编译