《C专家编程》笔记第五章--对链接的思考

234 阅读1分钟

P93

静态链接:

  • 如果函数库的一份拷贝是可执行文件的物理组成部分,那我们称之为静态链接。
  • 在静态链接中,整个文件也并没有被全部装入到可执行文件中,所装入的只是所需要的函数。

动态链接:

  • 如果可执行文件只是包含了文件名,让载入器在运行时能够寻找程序所需要的函数库,那么我们称之为动态链接。
  • 即使链接了函数库,如果并没有实际调用,也不会带来额外开销。
  • 动态链接使得可执行文件的体积可以非常小。虽然运行速度稍微慢一些,但能够更加有效地利用磁盘空间。
  • 所有动态链接到某个特定函数库的可执行文件在运行时共享该函数库的一个单独拷贝。
  • 动态链接使得函数库的版本升级更为容易,因为他把程序和函数库版本分离开来,取而代之的是我们由系统向程序提供一个接口,该接口稳定,不随时间和操作系统的后续版本发生变化。

P102

interpsitioning:

  • interpsitioning就是通过编写与库函数同名的函数来取代该库函数的行为。
  • 引用书中的原话,我们尚没有见到令人信服的例子,证明某种效果只能通过Interpsitioning有效地实现,而无法用其他方法来完成。 所以不要在程序中使用 interpsitioning
  • 书中102页举出一个interpsitioning带来的危害。