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 }