![](https://cos-cdn.shuashuati.com/pipixue-wap/2020-1230-1107-56/ti_inject-812ce.png)
假设一个 C 语言程序有两个源文件: main.c 和 proc1.c ,它们的内容如下所示: main.c proc1.c 1 #include
2 unsigned int x = 257; 3 short int y, z = 2; 4 extern void proc1(void); 5 int main() 6 { 7 proc1(); 8 printf(“x=%u,z=%d\n”, x, z); 9 return 0; 10 } 1 double x; 2 3 void proc1() 4 { 5 x = -1.5; 6 } 假定系统首地址按 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 )。要求修改时不能改变任何变量的数据类型和名字。