一个C程序是如何生成的

来源:互联网 发布:java b2b2c 开源 编辑:程序博客网 时间:2024/04/27 10:40

C编程的基本策略是用程序把源代码文件转换成可执行文件。C通过编译和链接这两个步骤来完成这一过程。编译器把源代码转换成中间代码,链接器把中间代码和其他代码包括预编译的库代码合并,生成可执行文件。

中间代码有很多种形式,最普遍的就是把源代码转换为机器语言代码,并把结果放在目标代码文件里。但是目标文件缺失许多代码:1是启动代码,启动代码充当这程序和操作系统之间的接口。2是库函数,例如printf()函数就需要stdio这个标准输入输出库,许多函数都存储在库文件种。

链接器的作用是把你编写的目标代码,系统的标准启动代码和库函数这3个部分合并成一个文件,即可执行文件。对于库代码,链接其只会把要用到的库函数代码提取出来。

下图是windows环境下程序的生成过程:




简而言之,目标文件和可执行文件都有机器语言指令组成。然而,目标文件只包含编译器为你编写的代码翻译的及其语言代码,可执行文件还包括你编写的程序中使用的库函数和启动代码。

在Linux系统中,我们不像windows系统上使用IDE来编写代码,而是利用vim文本编辑器和GUN编译器来生成一个程序。如下图所示:



0 0
原创粉丝点击