2012-02-28 104 views
2

我有一個解釋Reg函數指針

通過函數指針調用函數和直接按名稱調用函數有什麼區別?

任何人都可以幫助我。

回答

3

實際通話沒有區別。參數以相同的方式傳遞,函數以相同的方式運行,並且返回值以相同的方式返回。

唯一的區別是你可以使函數指針指向別的地方。

0

有不同之處在於編譯器/連接計算到底是什麼地址到程序的控制轉移,當你調用的名稱和會有限制一個函數,重視到代碼,而與函數指針沒有區別,計算機必須使用用於計算在何處將控制權轉移到運行時的指針。

0

沒有區別(除了通過名稱調用總是調用相同的功能,指針可以改變指向不同的功能)。

0

雖然直接使用函數指針沒有任何成本,你應該記住,函數指針不編譯時間常數,所以它也許能夠讀取他們的成本。所以,如果你在一個類中有一個函數指針,並用它來模擬多態行爲,那麼你根本不會得到任何加速。