1、c调用约定
c\c++项目中常用_cdecl修饰符使编译器按照c调用约定:即,函数调用方按照从右到左的顺序将其参数放入栈中,调用完之后调用方负责从栈中清除参数。
2、微软的调用约定
_stdcall,与C调用约定区别仅在于:调用完之后被调用者清除栈中的参数。(因此,参数可变函数不能使用这种调用约定。如,printf),其优点在于,每次函数调用不用通过代码清除栈上的参数,因此能够生成体积较小、运行较快的程序。
3、fastcall约定
类似于_stdcall调用约定,区别在于:它会向CPU寄存器最多传送2个参数。(将函数的前两个参数传送给ecx和edx)