調用約定 |
參數暫存 |
清棧 |
清棧指令 |
__cdecl |
右-->左入棧(this最後一個入棧) |
調用者 |
add esp,n*4; |
__thiscall |
右-->左入棧(ecx保存this) |
被調用者 |
ret n*4; |
__fastcall |
ecx,edx保存從左邊開始前兩個參數,右-->左入棧(ecx保存this) |
被調用者 |
ret n*4; |
__stdcall |
右-->左入棧(this最後一個入棧) |
被調用者 |
ret n*4; |
__declspec(naked) |
可與__cdecl, __thiscall, __fastcall, __stdcall連用; 在用於一般函數調用語法時,應返回代碼應與相應約定一致 |
不定 |
如果函數中包含ret n*4;返回代碼,則由被調用者自動清棧; 如果沒有則由調用者使用add esp,n*4指令手動清棧。 |
c++調用約定(32位程序)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.