编码机

深入理解计算机系统之三C程序编码

发布时间:2024/9/22 13:22:46   
北京中科白癜风医院爱心捐助 http://www.bdfyy999.com/photo/gongyishiye/

假设有一个hello.c程序,代码如下:

#includestdio.h

intmain()

{

printf("hello,world\n");

return0;

}

我们在unix系统中编译

gcc-ohellohello.c

编译后执行./hello,就能看到结果了。

当我们在系统上编译hello程序时,系统做了些什么?

hello程序的生命周期是从一个高级C语言程序开始的,因为这种形式能够被人读懂。然而,为了在系统上运行hello.c程序,每条C语句都必须被其他程序转化为一系列的低级机器语言指令。然后这些指令按照一种称为可执行目标程序的格式打好包,并以二进制磁盘文件的形式存放起来。目标程序也称为可执行目标文件。

在Unix系统上,从源文件到目标文件的转化是由编译器驱动程序完成的:

在这里,GCC编译器驱动程序读取源程序文件hello.c,并把它翻译成一个可执行目标文件hello。这个翻译过程可分为四个阶段完成,如图所示。执行这四个阶段的程序(预处理器、编译器、汇编器和链接器)一起构成了编译系统(

转载请注明:http://www.aideyishus.com/lkzp/6930.html

------分隔线----------------------------