問答題

【簡答題】

一個C語言的函數如下:

下面左右兩邊的匯編代碼是兩個不同版本GCC編譯器為該函數產生的代碼。左邊的代碼在調用func之前將參數壓棧,調用結束后將參數退棧。右邊代碼對參數傳遞的處理方式沒有實質區(qū)別。請敘述右邊代碼對參數傳遞的處理方式并推測它帶來的優(yōu)點。

答案: 左邊的編譯器版本:一般只為局部變量分配空間。調用函數前,用若干次pushl指令將參數壓棧,返回后用addl$n,%esp...
微信掃碼免費搜題