stdcall和cdecl:函數
stdcall和cdecl 壓棧方向都是從右到左 區別在於c約定是調用方在函數返回後add esp,n指令清除堆棧中的參數,而stdcall在被調函數內使用ret n來清理堆棧內的參數。ast
另外c約定是可使用可變數量參數的,而stdcall不能夠,這是由於c約定清理工做由調用方作,調用方知道實際傳入了多少參數,佔用多大空間。而stdcall由被調方清理參數,若是用可變參數被調方不容易獲取參數數量和尺寸。call
fastcall和stdcall相似 只不過最左兩個參數使用ecx edx寄存器傳遞。工作