呼叫堆叠
维基百科,自由的 encyclopedia
呼叫堆叠(英语:Call stack,港台称“呼叫堆叠”)别称有:执行栈(execution stack)、控制栈(control stack)、运行时栈(run-time stack)与机器栈(machine stack),是电脑科学中存储有关正在执行的子程式的讯息的堆叠。英文有时直接简称“栈”(the stack),但堆叠中不一定仅存储子程式讯息。几乎所有电脑程式都依赖于呼叫堆叠,而高阶语言一般将呼叫堆叠的细节隐藏至后台。
呼叫堆叠最经常被用于存放子程式的返回位址。在呼叫任何子程式时,主程式都必须暂存子程式执行完毕后应该返回到的位址。因此,如果被呼叫的子程式还要呼叫其他的子程式,其自身的返回位址就必须存入呼叫堆叠,在其自身执行完毕后再行取回。在递回程式中,每一层次递回都必须在呼叫堆叠上增加一条位址,因此如果程式出现无限递回(或仅仅是过多的递回层次),呼叫堆叠就会产生堆叠溢位。