mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
2024年10月9日 09:45
This commit is contained in:
parent
62dfe38dea
commit
3d8b6d4c91
@ -44,6 +44,44 @@
|
|||||||
* 在编译和链接之前,C 语言需要对源文件进行一些文本方面的操作,如:删除代码中的注释,但是不会进行语法检查、头文件包含、宏展开、条件编译等,这个过程叫做预处理,由`预处理程序(预处理器)`完成。
|
* 在编译和链接之前,C 语言需要对源文件进行一些文本方面的操作,如:删除代码中的注释,但是不会进行语法检查、头文件包含、宏展开、条件编译等,这个过程叫做预处理,由`预处理程序(预处理器)`完成。
|
||||||
* 较之其他的编程语言,如:Java 、C# 等,C/C++ 语言更依赖预处理器,所以在阅读或开发 C/C++ 程序的过程中,可能会接触到大量的预处理指令,如:`#include`、`#define` 等。
|
* 较之其他的编程语言,如:Java 、C# 等,C/C++ 语言更依赖预处理器,所以在阅读或开发 C/C++ 程序的过程中,可能会接触到大量的预处理指令,如:`#include`、`#define` 等。
|
||||||
|
|
||||||
|
## 1.3 预处理指令
|
||||||
|
|
||||||
|
* 预处理过程中会执行预处理指令,预处理指令以 `#`开头,如:`#include` 等,用于指导预处理器执行不同的任务。
|
||||||
|
|
||||||
|
* 预处理器有如下的特点:
|
||||||
|
|
||||||
|
* ① 预处理指令应该放在代码的开头部分。
|
||||||
|
|
||||||
|
* ② 预处理指令都以 `#`开头,指令前面可以有空白字符(比如空格或制表符),`#`和指令的其余部分之间也可以有空格,但是为了兼容老的编译器,一般不留空格。
|
||||||
|
|
||||||
|
```c
|
||||||
|
// 推荐写法
|
||||||
|
#include <stdio.h>
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
// 不推荐写法
|
||||||
|
#include <stdio.h>
|
||||||
|
# include <stdio.h>
|
||||||
|
```
|
||||||
|
|
||||||
|
* ③ 预处理指令都是一行的,除非在行尾使用反斜杠,将其折行。
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <std\
|
||||||
|
io.h>
|
||||||
|
```
|
||||||
|
|
||||||
|
* ④ 预处理指令不需要分号作为结束符,指令结束是通过换行符来识别的。
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>; // 这里有分号会报错
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* ⑤
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 第二章:宏定义
|
# 第二章:宏定义
|
||||||
|
Loading…
Reference in New Issue
Block a user