調用約定:stdcall 與 cdecl
在程式設計中,呼叫約定定義參數如何在函數之間傳遞。兩個常見的呼叫約定是 stdcall 和 cdecl.
1。 cdecl函式呼叫
當呼叫cdecl函式時,呼叫者不負責清理堆疊。編譯器根據函數的呼叫約定產生處理堆疊清理的程式碼。
2。混合呼叫約定
通常不建議混合呼叫約定。然而,在某些情況下這是可能的。例如,stdcall 函數可以呼叫 cdecl 函數,反之亦然。這可能發生在與 Windows API 互動的程式碼中,因為 WinAPI 函數使用 stdcall 約定,而 C 程式預設使用 cdecl。
3。效能比較
stdcall 和 cdecl 之間沒有顯著的效能差異。在大多數情況下,兩種約定使用相同數量的開銷。但是,根據特定的編譯器和平台,某些最佳化可能可用。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3