C语言程序helloworld.c的运行经历了什么

最近一直在忙着翻译英文资料,要翻译好几万英文字,有点繁琐。突然发现自己连最基本的知识都忘记了,也许从来就没掌握过。平时得读读《深入理解计算机系统》(简称:CSAPP)这本书,温故一些基础知识了。

大部分人学C语言的时候都写过第一个打印helloworld程序,但是对C语言程序怎么被执行的并不知道。其实说白了,C语言程序是人能读懂的语言,要想被机器读懂,就需要经过层层“翻译”,最后被“翻译”成能够被机器读懂的“0”和“1”的机器码。

1
2
3
4
5
#include stdio.h
int main(){
printf("helloworld\n");
return 0;
}

所谓的“翻译”过程分为四个阶段:预处理、编译、汇编和链接。