stdcall和cdecl:函数
stdcall和cdecl 压栈方向都是从右到左 区别在于c约定是调用方在函数返回后add esp,n指令清除堆栈中的参数,而stdcall在被调函数内使用ret n来清理堆栈内的参数。ast
另外c约定是可使用可变数量参数的,而stdcall不能够,这是由于c约定清理工做由调用方作,调用方知道实际传入了多少参数,占用多大空间。而stdcall由被调方清理参数,若是用可变参数被调方不容易获取参数数量和尺寸。call
fastcall和stdcall相似 只不过最左两个参数使用ecx edx寄存器传递。工作