2018.04.01
1.函数调用堆栈的过程:
2.函数的返回值怎么带出来?
(1)字节数<=4字节,eax (2)(>4)&&(<=8)字节,eax/[ebx][edx]可选 (3)>8字节,产生临时量
临时量:临时量在函数调用之前产生,调用之前为临时量分配一块地址;在进行压栈时,给一个存放临时量的地址信息的段,从而通过此地址找到临时量;一层一层的进行循环拷贝赋值。
3.参数带默认值的函数:
(1)int sum(int a,int b,int c=90)
{
int a=20,b=30;
sum(10,a,b);/*b:mov eax,dword ptr[ebp-8];push eax*/
sum(10,a);/*最后一项直接调用默认值,push dword ptr[ebp-8]*/
//所以以上两种调用效率不同