程序的翻译环境和执行环境

.c 到 .exe 的故事

在用C语言写代码前,我们会先创建一个或多个源文件(.c 文件),最终源文件会变成可执行文件(.exe 文件)

Part1. 程序的翻译环境和执行环境

 ANSI C 的任何一种实现中,存在两个不同的环境:

第一 种是 翻译环境  ,在这个环境中 源代码被转换为可执行的机器指令 

  种是 执行环境 ,它用于 实际执行代码 

Part2. 编译与链接

2.1 翻译环境

如图,每个 源文件 单独经过 编译器 处理,生成 目标文件 ,所有目标文件与 链接库 一起,在 链接器 的作用下生成 可执行文件 

演示:

创建一个项目,在这个项目下创建三个源文件

运行后,

 查看 .exe 文件:

 查看 .obj 文件:

一些细节:

• 组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code);

• 每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序;

• 链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员      个人的程序库,将其需要的函数也链接到程序中。

2.2. 编译的几个阶段

我们已经知道了,源文件变成可执行文件需要编译和链接两个过程,那么编译本身有哪些阶段呢?

由图示可看出:编译经历的阶段有 预编译 --> 编译 --> 汇编 

接下来细讲每个过程:

注:由于 VS2022 属于集成开发环境,不方便展示细节,

       所以接下来我会使用 Linux 环境下的 gcc 来演示编译和链接的过程。

为方便起见,我们只使用 test.c 和 Add.c 文件

链接链接,通俗来讲就是把多个文件连接起来

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值