当执行到达下面骨架程序中的指示位置时,显示包含所有激活记录实例的堆栈,包括静态链和动态链。假设Bigsub是1级,子程序调用的顺序是Bigsub调用A,A调用B,B调用A,A调用C,C调用D。
procedure Bigsub;
procedure C; forward;
procedure A;
procedure B;
end; {B}
end; {A}
procedure C;
procedure D;
*** Here is the point ***
end; {D}
end; {C}
end; {Bigsub}
我有一些与此类似的问题。我不明白究竟是什么问题,什么是动态链和静态链。我有下面的图像显示了堆栈,这就是我的理解,但我不知道那些箭头代表什么。此外,图像是否缺乏激活记录实例,还是作为解决方案好?
答案 0 :(得分:2)
静态链是连接某些激活的静态链接链 记录堆栈中的实例。 动态链是给定时间堆栈中动态链接的集合。 在你的情况下,每当你说这个"电话"然后在那里添加一个动态链。对于静态链,你只需要查看哪个函数是静态的one.one。好的例如C嵌套D所以C和D具有静态链,如此。