問答題

【簡答題】

一個(gè)C語言的函數(shù)如下:

下面左右兩邊的匯編代碼是兩個(gè)不同版本GCC編譯器為該函數(shù)產(chǎn)生的代碼。左邊的代碼在調(diào)用func之前將參數(shù)壓棧,調(diào)用結(jié)束后將參數(shù)退棧。右邊代碼對參數(shù)傳遞的處理方式?jīng)]有實(shí)質(zhì)區(qū)別。請敘述右邊代碼對參數(shù)傳遞的處理方式并推測它帶來的優(yōu)點(diǎn)。

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