呼叫堆疊
維基百科,自由的 encyclopedia
呼叫堆疊(英語:Call stack,大陸稱「調用堆棧」)別稱有:執行堆疊(execution stack)、控制堆疊(control stack)、執行時堆疊(run-time stack)與機器堆疊(machine stack),是電腦科學中儲存有關正在執行的子程式的訊息的堆疊。英文有時直接簡稱「堆疊」(the stack),但堆疊中不一定僅儲存子程式訊息。幾乎所有電腦程式都依賴於呼叫堆疊,而高階語言一般將呼叫堆疊的細節隱藏至後台。
呼叫堆疊最經常被用於存放子程式的返回地址。在呼叫任何子程式時,主程式都必須暫存子程式執行完畢後應該返回到的地址。因此,如果被呼叫的子程式還要呼叫其他的子程式,其自身的返回地址就必須存入呼叫堆疊,在其自身執行完畢後再行取回。在遞歸程式中,每一層次遞歸都必須在呼叫堆疊上增加一條地址,因此如果程式出現無限遞歸(或僅僅是過多的遞歸層次),呼叫堆疊就會產生堆疊溢位。