《程序员的自我修养》读书笔记 第十周

本文探讨了程序设计中的模块化理念,强调其对于提高软件开发效率和减少错误的重要性。文章详细介绍了链接过程,包括地址和空间分配、符号决议、重定位等关键步骤,并解释了如何通过链接将多个模块化功能整合成完整的可执行文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                              《程序员的自我修养》读书笔记

     程序设计的模块化一直是程序员在工作过程中所追求的目标,因为当一个程序包含多种功能时,一整段程序会使整个程序变得十分难懂而且无法维护,这时就需要我们把要实现的功能模块化,将复杂的系统逐步分割成小的系统以达到逐个击破的目的。在一个软件的编写过程中也是一样,每名开发人员各自负责编写一部分模块化的功能,最后再拼装在一起,这样会大大提高效率并且可以降低错误率,所以人们把每个源代码模块独立地编辑,然后组装起来,这个过程就是链接,把各个模块相互引用的部分处理好,使得各个部分都互不干扰又可以相互联系。链接过程包括了地址和空间分配,符号决议,重定位等步骤。在链接过程中每个模块的源代码文件经过编译器变异成目标文件,以.o为扩展名,目的文件和库文件一起链接成最终的可执行文件,最常用的库runtime library,它是支持程序运行的基本函数集合。在链接过程中,对其他定义的目的文件中函数调用的指令需要被重新调整,对使用其他定义在其他文件的变量来说也有同样的问题,所以链接过程就给这些变量名进行调整和区分,等待连接器在将目标文件AB链接起来的时候再次进行修正。这个地址修正的过程通常被称为重定位,每一个要被修正的地方叫做重定位入口,重定位所做的就是给程序中每一个需要这个过程的绝对地址引用的位置做标记,使得它可以指向正确的地址,这样才可以保证程序的正确运行而不产生混淆和错乱。

转载于:https://www.cnblogs.com/ffy0701/p/9053164.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值