4

雖然在某些CPU體系結構中閱讀某些調用約定時,我讀了類似於函數結尾和序言是什麼?

「epilogue and prologue」,當從另一個函數調用函數時。

什麼是函數序言或結語?

回答

8

函數的結尾和序言只是一組指令,它在函數調用時爲函數設置上下文,並在函數返回時進行清理。

開場白通常執行的任務包括:

  • 保存所有的寄存器,該功能可以使用(由該平臺的標準要求在函數調用中被保留)
  • 在棧上分配存儲是該功能可能需要局部變量
  • 設置任何指針(或其他連接)至參數可能會在堆棧上傳遞

結語通常只需要恢復任何保存寄存器並恢復堆棧指針,以使該函數爲自己使用而保留的任何內存被「釋放」。

可能在序言/結語中使用的確切機制取決於CPU體系結構,平臺標準,函數的參數和返回值以及函數可能使用的特定調用約定。

+0

非常感謝親愛的伯爾 – 2010-07-12 19:26:45

2

維基百科FTW:https://en.wikipedia.org/wiki/Function_prologue

這似乎解釋得相當好,在我看來。如果有什麼不清楚的地方,讓我知道,我可以嘗試清理一些事情。

+0

不錯。謝謝。 :-) – 2010-07-12 19:27:06