C代码通过编译器编译成可执行代码,经历了四个阶段,依次为:预处理、编译、汇编、链接。

接下来详细讲解各个阶段

一、预处理

1、任务:进行宏定义展开、头文件展开、条件编译,不检查语法。

2、命令:gcc -E [源文件]  -o [预处理文件]

3、案例:用gcc编译器预处理demo1.c代码,预处理后的文本放到demo1.i中。(gcc -E demo1.c -o demo1.i)

demo1.c代码如下:

 1 #include <stdio.h>
 2 
 3 #define add(a, b) (a + b)
 4 #define sub(a, b) (a - b)
 5 
 6 int main(void)
 7 {
 8     int a, b, c, d;
 9 #ifndef __cplusplus
10     a = b = c = d = 1;
11 #else
12     a = b = c = d = 2;
13 #endif
14     printf("num = %d\n", sub(add(a, b), add(c, d)));
15     return 0;
16 }
demo1.c

相关文章: