假设一个C语言程序有两个源文件:main.c和proc1.c,它们的内容如下所示:假定系统首地址按4字节边界对齐,回答下列问题。(1)在上述两个文件中出现的符号哪些是强符号?哪些是弱符号?(2)程序执行后打印的结果是什么?请分别画出执行main.c中第7行的proc1()函数调用前、后,在地址&x和&z中存放的内容。若main.c中第3行改为“short int y = 1, z = 2;”,程序执行后打印结果又是什么?(3)修改文件proc1.c,使得main.c能输出正确的结果(即x=257,z=2)。要求修改时不能改变任何变量的数据类型和名字。
假定a和b是可重定位目标文件或静态库文件,a-->b表示b中定义了一个被a引用的符号。对于以下每一小题出现的情况,给出一个最短的命令行(含有最少数量的可重定位目标静态库文件参数),使得链接器能够解析所有的符号引用。(1)p.o --> libx.a --> liby.a(2)p.o --> libx.a --> liby.a 同时liby.a -->libx.a(3)p.o --> libx.a --> liby.a --> libz.a同时liby.a --> libx.a -->libz.a
已知两个C语言源程序(教材194页上图4.9),其main函数源代码对应的main.o中.text节和.rel.text节的内容如下所示,其中.text节有一处需要重定位。假定链接后main函数代码起始地址是0x8048386,紧跟在main后的是swap函数的代码,且首地址按4字节边界对齐。要求给出main.o的.text节中需要重定位的符号名、相对于.text节起始位置的位移、所在指令行号、重定位类型、重定位前的内容、重定位后的内容,并给出重定位值的计算过程。
药理学是研究
A. 药物效应动力学
B. 药物代谢动力学
C. 药物的学科
D. 与药物有关的生理科学
E. 药物与机体相互作用及其规律的学科