mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
2024年10月9日 15:02
This commit is contained in:
parent
118990b436
commit
795710e7a4
BIN
docs/notes/02_c-leap/06_xdx/assets/4.png
Normal file
BIN
docs/notes/02_c-leap/06_xdx/assets/4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
@ -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;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
# 第六章:条件编译
|
Loading…
Reference in New Issue
Block a user