1.初识c语言

初识c语言

1.8编程机制

1.8.1目标代码文件、可执行文件和库

C编程的基本策略是,用程序把源代码文件转换为可执行文件,通过编译和链接两个步骤来完成这一过程。编译器把源代码转换成中间代码,链接器把中间代码和其他代码合并,生成可执行文件。
这样方便对程序进行模块化,可以独立编译单独的模块,稍后再用链接器合并已编译的模块。通过这种方式,如果只更改某个模块,不必因此重新编译其他模块。另外,链接器还将编写的程序和预编译的库代码合并。

中间文件有多种形式。这里描述的是最普遍的一种形式,即把源代码转换成机器语言代码,并把结果放在目标代码文件中。虽然目标文件中包含机器语言代码,但是并不能直接运行该文件。因为目标文件中储存的是编译器翻译的源代码,这还不是一个完整的程序。
目标代码文件缺失启动代码。启动代码充当着程序和操作系统之间的接口。同时,还缺少库函数。几乎所有的c程序都要使用c标准库中的函数。目标代码文件只包含了使用相关函数的指令。而函数真正的代码储存在另一个被称为库的文件中。库文件中有许多函数的目标代码。
链接器的作用是,把编写的目标代码、系统的标准启动代码和库代码这三部分合并成一个文件,即可执行文件。对于库代码,链接器只会把程序中要用到的库函数代码提取出来。

在这里插入图片描述

简而言之,目标文件和可执行文件都由机器语言指令组成。然而,目标文件中只包含编译器为编写的代码翻译的机器语言代码,可执行文件中还包含编写的程序中使用的库函数和启动代码的机器代码。
在有些系统中,必须分别运行编译程序和链接程序,而在另一些系统中,编译器会自动启动链接器,用户只需给出编译命令即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值