下面的東西沒有感覺,先MARK。
cdecl 由調用者清除堆棧
stdcall 由被調的函數清除堆棧
fastcall 是把函數參數列表的前三個參數放入寄存器eax,edx,ecx,其他參數壓棧。
cdecl 由調用者清除堆棧
stdcall 由被調的函數清除堆棧
fastcall 是把函數參數列表的前三個參數放入寄存器eax,edx,ecx,其他參數壓棧。
函數調用規則指的是調用者和被調用函數間傳遞參數及返回參數的方法,常用的有Pascal, stdcall,cdecl.
__cdecl C調用規則:
1.在后面的參數先進入堆棧;
2.在函數返回后,調用者要負責清除堆棧.所以這種調用常會生成較大的可執行程序.
__stdcall 又稱為WINAPI, 其調用規則:
1.在后面的參數先進入堆棧;
2.被調用的函數在返回前自行清理堆棧,所以生成的代碼比cdecl小.
Pascal 調用規則:
Pascal調用規則主要用在案WIN16函數庫中,現在基本不用.
1.參數在前的先進入堆棧;
2.不支持可變參數的函數調用.