mirror of
https://github.com/wangdoc/clang-tutorial.git
synced 2026-04-14 10:39:49 +08:00
docs: fixed #78
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
C 语言编译器在编译程序之前,会先使用预处理器(preprocessor)处理代码。
|
||||
|
||||
预处理器首先会清理代码,进行删除注释、多行的语句合成一个逻辑行等等。然后,执行`#`开头的预处理指令。本章介绍 C 语言的预处理指令。
|
||||
预处理器首先会清理代码,进行删除注释、多行语句合成一个逻辑行等工作。然后,执行`#`开头的预处理指令。本章介绍 C 语言的预处理指令。
|
||||
|
||||
预处理指令可以出现在程序的任何地方,但是习惯上,往往放在代码的开头部分。
|
||||
|
||||
@@ -35,7 +35,7 @@ printf("%s", HELLO);
|
||||
|
||||
上面示例中,宏`HELLO`会被原样替换成`"Hello, world"`。
|
||||
|
||||
`#define`指令可以出现在源码文件的任何地方,从指令出现的地方到该文件末尾都有效。习惯上,会将`#define`放在源码文件的头部。它的主要好处是,会使得程序的可读性更好,也更容易修改。
|
||||
`#define`指令可以出现在源码文件的任何地方,从指令出现的地方到文件末尾都有效。习惯上,会将`#define`放在源码文件的头部。它的主要好处是,会使得程序的可读性更好,也更容易修改。
|
||||
|
||||
`#define`指令从`#`开始,一直到换行符为止。如果整条指令过长,可以在折行处使用反斜杠,延续到下一行。
|
||||
|
||||
@@ -228,7 +228,7 @@ X(5, 4, 3.14, "Hi!", 12)
|
||||
|
||||
```c
|
||||
// 报错
|
||||
#define WRONG(X, ..., Y) #X #__CA_ARGS__ #Y
|
||||
#define WRONG(X, ..., Y) #X #__VA_ARGS__ #Y
|
||||
```
|
||||
|
||||
上面示例中,`...`替代中间部分的参数,这是不允许的,会报错。
|
||||
|
||||
Reference in New Issue
Block a user