1> _cdecl C标准调用约定
2>_stdcall windows标准调用约定
3>_fastcall 快速调用约定
4>_thiscall 类成员方法调用约定
函数的调用约定,约束了:
1、符号的生成规则,不同调用约定下相同的函数是无法进行调用的
int __cdecl Sum(int,int) --> (?Sum@@YAHHH@Z)
int __stdcall Sum(int,int) --> (?Sum@@YGHHH@Z)
int __fastcall Sum(int,int) --> (?Sum@@YIHHH@Z)
2、实参的入栈顺序,从右向左入栈
3、形参内存的开辟和清理,不同的调用约定,栈帧的开辟和清理是不同的
_cdecl:调用方开辟,调用方清理
_stdcall:调用方开辟,被调用方清理
_fastcall:前两个形参由寄存器带入被调用方,后面的形参和_stdcall的调用约定相同