- 通过函数名找到函数的入口地址;
- 给形参分配空间;
- 传参(把实参传递给形参,包括值传递和址传递);
- 执行函数体(给局部变量分配空间等);
- 返回;
- 释放空间(释放的是栈空间)。
注意:函数的形参也拥有地址空间,与实参的地址空间相独立。
总结起来整个过程就三步:
1)根据调用的函数名找到函数入口;
2)在栈中审请调用函数中的参数及函数体内定义的变量的内存空间
3)函数执行完后,释放函数在栈中的审请的参数和变量的空间,最后返回值(如果有的话)
如果你学了微机原理,你会想到cpu中断处理过程,是的,函数调用过程和中断处理过程一模一样