差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
cpp:dll:windows:questions [2014/10/03 17:05]
127.0.0.1 外部編輯
cpp:dll:windows:questions [2023/06/25 09:48] (目前版本)
行 11: 行 11:
   * Windows程式設計 - 王艷平 編著   * Windows程式設計 - 王艷平 編著
 ===== fastcall、cdecl與stdcall ===== ===== fastcall、cdecl與stdcall =====
-這三個宣告叫呼叫慣例(Calling Conventions)。三者將參數放入Stack的順序為由左至右,但還有以下差異存在:​+這三個宣告叫呼叫慣例(Calling Conventions)。三者將參數放入Stack的順序為由左至右,但還有以下差異存在:​
   * 暫存器: fastcall會將第一個參數與第二個參數放入暫存器中,放在暫存器存取速度會比在stack中快,顧名思義它叫fastcall。cdecl與stdcall只會使用到stack。   * 暫存器: fastcall會將第一個參數與第二個參數放入暫存器中,放在暫存器存取速度會比在stack中快,顧名思義它叫fastcall。cdecl與stdcall只會使用到stack。
   * 清除Stack的時機:​ cdecl是由function caller清除stack;fastcall與stdcall則是由callee清除。也因此cdecl允許於不定參數。   * 清除Stack的時機:​ cdecl是由function caller清除stack;fastcall與stdcall則是由callee清除。也因此cdecl允許於不定參數。