函数调用约定的作用
(1)规定了参数压栈的顺序;
(2) 规定由谁来清理堆栈
(3)规定函数返回值所放置的地方
1 _cdel调用(它是c语言默认的函数调用方法)
1)它的参数从右到左依次压栈,函数本身并不清理堆栈,这些参数由调用者清理,是C语言缺省的调用约定,它的定义语法是:
int function (int a ,int b) // 不加修饰就是C调用约定
int __cdecl function(int a,int b) // 明确指出C调用约定
所以C调用约定允许函数的参数的个数是不固定的,这也是C语言的一大特色。对于前面的function函数,使用cdecl后的汇编码变成:
调用处
push