return (a + b);
}
函数调用处反汇编代码如下:
;add(1,2);
push 2 ;参数从右到左入栈,先压入2
push 1 ;压入1
call @ilt+0(add) (00401005) ;调用函数实现
add esp,8 ;由函数调用清栈
2、__stdcall
__stdcall调用约定用于调用win32 api函数。采用__stdcal约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用一条ret n指令直接清理传递参数的堆栈。__stdcall可以写成_stdcall。