- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第7章程序的链接
2.简单回答下列问题。
(1)如何将多个C语言源程序模块组合起来生成一个可执行目标文件?简述从源程序到可
执行目标文件的转换过程?
(2)引入链接的好处是什么?
(3)可重定位目标文件和可执行目标文件的主要差别是什么?
(4)静态链接方式下,静态链接器主要完成哪两方面的工作?
(5)可重定位目标文件的.text节、.rodata节、.data节和.bss节中分别主要包含什么信息?
(6)可执行目标文件中的.text节、.rodata节、.data节和.bss节中分别主要包含什么信息?
(7)可执行目标文件中有哪两种可装入段?哪些节组合成只读代码段?哪些节组合成可读
写数据段?
(8)加载可执行目标文件时,加载器根据其中的哪个表的信息对可装入段进行映射?
(9)在可执行目标文件中,可装入段被映射到虚拟存储空间,这种做法有什么好处?
(10)静态链接和动态链接的差别是什么?
【分析解答】(略)
3.假设一个C语言程序有两个源文件:main.c和test.c,它们的内容如图7.28所示。
1/*main.c*/1/*test.c*/
2intsum();2externinta[];
33intval=0;
4inta[4]={1,2,3,4};4intsum()
5externintval;5{
6intmain()6inti;
7{7for(i=0;i4;i++)
8val=sum();8val+=a[i];
9returnval;9returnval;
10}10}
图7.28题3用图
对于编译生成的可重定位目标文件test.o,填写表7.1中各符号的情况,说明每个符号
是否出现在test.o的符号表(.symtab节)中,如果是的话,定义该符号的模块是
main.o还是test.o,该符号的类型是全局、外部还是本地符号,该符号出现在test.o的
哪个节(.text、.data或.bss)。
表7.1题3用表
符号在test.o的符号表中?定义模块符号类型节
a
val
sum
i
【分析解答】
根据题中给出的条件,填表7.1得到表项内容如下。
符号在test.o的符号表中?定义模块符号类型节
a在main.oextern.data
val
您可能关注的文档
- 计算机系统导论 课件 第1--3章计算机系统概论; 高级语言程序; 数据的机器级表示.ppt
- 计算机系统导论 课件 第4、5章 数据的基本运算、 指令集体系结构.ppt
- 计算机系统导论 课件 第6、7章 程序的机器级表示、 程序的链接.ppt
- 计算机系统导论第1章习题参考答案.pdf
- 计算机系统导论第2章习题参考答案.pdf
- 计算机系统导论第3章习题参考答案.pdf
- 计算机系统导论第4章习题参考答案.pdf
- 计算机系统导论第5章习题参考答案.pdf
- 计算机系统导论第6章习题参考答案.pdf
- 计算机系统导论第8章习题参考答案.pdf
- 医学资料 临床医生如何发表SCI论文 学习课件.pptx
- 医学资料 麻醉科在现代医院中的地位与作用 学习课件.pptx
- 车辆买卖合同模板(示范合同).pdf
- 车管所20XX年半年工作总结范文.pdf
- 车管所半年工作总结.pdf
- 广东省肇庆市2023-2024学年高一上学期期末教学质量检测政治(解析版).docx
- 江西省南昌市2025届高三英语一轮复习人教版(2019)必修第三册训练题(三).docx
- 上海市复旦大学附属中学2023-2024学年高二上学期期中考试英语(解析版).docx
- 广东省惠州市2024-2025学年高三上学期9月阶段检查物理(解析版).docx
- 甘肃省武威市凉州区2024-2025学年高三上学期第一次诊断考试政治(解析版).docx
文档评论(0)