C 语言编程机制
C 语言编程机制主要分为两步进行:
- 利用
编译器
将各个源文件编译为中间文件
. - 利用
链接器
将各个中间文件
和启动代码
及库文件
3 部分合并成一个文件, 即可执行文件
.
这种分而治之的方式方便对程序进行模块化, 可以独立编译单独的模块, 稍后再用链接器合并已经编译的模块. 如果只更改某个模块, 不必因此重新编译其他模块.
如图:
中间文件有多种形式, 最常见的是目标代码文件, 即把源文件转换为机器语言代码, 并存放在目标代码文件中, 简称目标文件.
如图:
启动代码充当程序和操作系统之间的接口, 若操作系统相同则所需的启动代码相同.
目标代码是针对不同 CPU 去编译生成的, 在源代码相同的前提下, 若 CPU 相同则目标代码相同.
目标代码, 库代码, 启动代码和可执行程序都是机器语言代码.
目标代码不包含库函数的代码, 只包含要使用某个库函数的指令. 库函数的真正代码储存在库文件中.
库文件中的库函数代码是其目标代码, 即已经编译过的. 链接器只会把程序要用到的库函数的代码提取出来.
一些系统分别运行编译程序和链接程序, 一些系统中编译器自动启动链接器, 用户只需要给出编译命令.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术