文章目录
前言
我们用编译器写完代码后,只需Crtl+F5即可让代码跑起来,最后将结果输出到屏幕上,那么你知道在这个过程中都经过了哪些步骤吗?
其实,在ANSI C(标准C)的任何一种实现中,都存在两个不同的环境,即翻译环境和执行环境。翻译环境,在这个环境中,代码被转换为可执行的机器指令。执行环境,它用于实际执行代码。
我们运行代码时都将经历这两个过程,最后才将运行结果呈现在屏幕上。

翻译环境
在翻译环境下,要经历两个过程,即编译和链接。我们写的程序中可能包含多个源文件(以.c为后缀),编译过程中这些源文件会单独经过编译器处理,最后生成对应的目标文件(以.obj为后缀),而在链接过程中,链接器会把这些目标文件和链接库(存放的是库函数信息)链接起来,最后生成可执行程序。

总结:
- 组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。
- 每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。
- 链接器同时也会引入标准C库函数中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要的函数也链接到程序中。
例如,我们写一个简单的加法函数在源文件Add.c中,再写一个源文件test.c用于调用Add函数,当程序执行完毕后

本文详细解析了C语言程序从编写到执行的全过程,包括翻译环境中的预编译、编译、汇编及链接步骤,以及执行环境中的程序加载与执行流程。
最低0.47元/天 解锁文章
1071

被折叠的 条评论
为什么被折叠?



