1. 下面的表格总结了Win32函数调用方式的异同
2. 针对下面的代码片段
1)使用__cdecl调用约定将生成如下的汇编代码
2)使用__stdcall调用约定将生成如下的汇编代码
3)使用__fastcall调用约定将生成如下的汇编代码
3. 几点说明
1)__stdcall(#define WINAPI __stdcall)是WIN32 API的默认调用方式;
2)在使用__stdcall调用方式时,因为是被调用者负责清理堆栈,所以该方式不能应用在可变参数的函数中,比如prinf(),因为被调用者不知道确切参数的大小。如果要定义可变参数的函数, 要使用__cdecl的调用方式。