调用约定 | 参数传递方向 | 谁清理栈 | 使用场合 | 修饰函数符号表格式 |
__cdecl | 从右向左 | 调用方 | C/C++、MFC的默认方式; 可变参数的时候使用 | _函数名 |
__stdcall | 从右向左 | 被调用方退出函数时清理 | Win API | _函数名@参数名 |
__fastcall | 从右向左, 但左边开始的两个不大于4字节(DWORD)的参数分别放在ECX和EDX寄存器,其余的参数自右向左压栈传送 | 被调用方退出函数时清理 | 要求速度快 (毕竟用了寄存器) | @函数名@参数字节大小 |
调用约定 | 参数传递方向 | 谁清理栈 | 使用场合 | 修饰函数符号表格式 |
__cdecl | 从右向左 | 调用方 | C/C++、MFC的默认方式; 可变参数的时候使用 | _函数名 |
__stdcall | 从右向左 | 被调用方退出函数时清理 | Win API | _函数名@参数名 |
__fastcall | 从右向左, 但左边开始的两个不大于4字节(DWORD)的参数分别放在ECX和EDX寄存器,其余的参数自右向左压栈传送 | 被调用方退出函数时清理 | 要求速度快 (毕竟用了寄存器) | @函数名@参数字节大小 |