《程序员的自我修养——链接、装载与库》读书笔记(1)

         这两天看了《程序员的自我修养——链接、装载与库》一书的前三章,感觉还是很有收获的。虽然这本书对于开发一个现成的app来说,貌似没什么作用,但对于理解一个系统软件到底是如何从高级语言代码到跑在硬件上的程序还是很有帮助的。

         大部分人都知道我们写的代码要经过预处理、编译、汇编成目标文件,然后经过链接生成最终的可执行文件,但是细节上是怎么一回事就懒得管了。编译的过程我还算有点了解,什么词法分析、语法分析、语义分析之类一系列复杂的步骤,最终得到目标文件,然而链接就完全不知道是怎么一回事了。读这本书前,我曾经一直以为目标文件就是一系列机器码,链接就是把一些库函数嵌入进去,然后程序就可以跑了。直到书中提了一个问题:不同文件中互相调用函数或者全局变量的时候如何确定地址呢?再仔细想,那些调用了别的文件中函数或全局变量的目标文件该如何区分这些变量和自己文件内的静态变量?我顿时感觉链接的过程并没有那么简单,而且目标文件应该也不仅仅是我们写的代码对应的机器码而已,应该也包含了关于函数、变量的信息,而如果要把这一切组织起来,需要更严谨、有效率的文件结构,这就是COFF文件,即Windows

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值