一. 符号引用
编译会先把每个源代码文件编译成object目标文件,然后把所有目标文件链接到一起,成为最终的可执行格式,如elf或exe.
 
源代码文件中会有很多符号引用,比如一个函数调用另一个函数,一个变量中引用另一个变量。这些引用在目标文件中并不会确定地址,只有在最终链接的时候才会确定。
 
二. 函数引用实例
 
 
main函数中调用foo函数,即main函数引用符号foo。main.o或者main.obj中的引用如下:
 
其中foo的地址为foo@rel24,这不是一个最终的地址,而是一个需要重新定位的地址,rel即是relocate的意思。
 
elf中的引用为:
这里已经是最终地址了。
 
三. 数据引用实例
ref.c(c99语法)代码如下:
b_struct引用a_struct。
 
在ref.o或ref.obj中的引用为:
 
可以看到bs中as的指针处为0,而不是实际的值,因为此时还不知道as最终会放在哪一个地址。
 
elf中为:
这里为最终地址。

最新文章

  1. android selector 开始自定义样式
  2. Linux使用mount挂载samba共享
  3. 扩展 easyui-tabs 插件 关闭标签页方法
  4. 【译】在 Chrome 开发者工具中调试 node.js
  5. [Effective JavaScript 笔记]第22条:使用arguments创建可变参数的函数
  6. HDU 5009 Paint Pearls 双向链表优化DP
  7. Quartzs -- Quartz.properties 配置
  8. linux笔记:linux常用命令-压缩解压命令
  9. BOOTCAMP版本适配机型表
  10. HDU_2147——组合博弈,转换为P/N图,然后找规律
  11. C++输出hello world 详细注释
  12. Word Break II 解答
  13. cocos2d-x 源代码 :可以循环CCScrollView (,代码已被重构连接使用)
  14. K-Means算法
  15. Python3基础 filter与lambda表达式配合 筛选出1-100之间的奇数
  16. Linux中mysql乱码问题
  17. 【学习】ie-css3.htc---让ie8以下支持css3
  18. 粒子跟随本体unity
  19. ionic npm安装报错 no such file ,解决办法
  20. Angular 4 组件间的通信

热门文章

  1. SPFA+链式前向星
  2. js获取对象属性的两种方法,object.属性名,[‘属性名’ ]
  3. 2018-07-01 jq效果
  4. Netty 中的粘包和拆包
  5. ES6,ES7,ES8 常用特性总结
  6. kudu_遇到的一些问题
  7. jsp 循环数字
  8. Vue刷新页面的三种方式
  9. 浅析String、StringBuilder、StringBuffer
  10. UVA10529 Dumb Bones (完成度:40%)