一个编写好的C代码经过编译成可执行程序需要经过以下4步:
1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除(这一步并不会检查语法)
2)编译:检查语法,将预处理后的文件编译生成汇编文件
3)汇编:将汇编文件生成目标文件(二进制文件)
4)链接:C语言编译过程的最后一步是链接。链接器将多个目标文件连接在一起,生成最终的可执行程序。链接器会把程序所需的库函数和其他目标文件链接在一起,使得程序能够正常执行。
具体示例如下:
#include <stdio.h>
int main()
{
printf("happy new year!\n");
return 0;
}
其编译过程如下: