使用函數的時候,我用debug查看匯編碼,用的是call 函數入口地址,用函數指針的匯編碼為call si,其中si中存放的就是函數入口地址。
3 回答

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
1.直接調用函數,編譯的時候,被調函數的地址(或偏移)直接寫入指令;
2.使用函數指針時,運行期從內存中取地址,在使用call指令
理論上,這存在效率差異。
根據你的系統環境:服務器、PC還是嵌入式處理器、單片機等,及你的代碼的時間敏感程度:如時序嚴格的驅動還是MS,等等因素,自己可以判斷使用。還有一點需要強調:使用函數指針是為了獲得某種靈活或模型(C++編譯器內部大量使用函數指針),所以,這是一種平衡。
- 3 回答
- 0 關注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消