下面的东西没有感觉,先MARK。
cdecl 由调用者清除堆栈
stdcall 由被调的函数清除堆栈
fastcall 是把函数参数列表的前三个参数放入寄存器eax,edx,ecx,其他参数压栈。
函数调用规则指的是调用者和被调用函数间传递参数及返回参数的方法,常用的有Pascal, stdcall,cdecl.
__cdecl C调用规则:
1.在后面的参数先进入堆栈;
2.在函数返回后,调用者要负责清除堆栈.所以这种调用常会生成较大的可执行程序.
__stdcall 又称为WINAPI, 其调用规则:
1.在后面的参数先进入堆栈;
2.被调用的函数在返回前自行清理堆栈,所以生成的代码比cdecl小.
Pascal 调用规则:
Pascal调用规则主要用在案WIN16函数库中,现在基本不用.
1.参数在前的先进入堆栈;
2.不支持可变参数的函数调用.