1、当在一个函数的运行期间调用另一个函数时,在运行被调用函数之前,系统需要完成三件事情:
(1)将所有的实参、返回地址等信息传递给被调用函数保存;
(2)为被调用函数的局部变量分配存储区;
(3)将控制转移到被调函数的入口。
2、从被调用函数返回到调用函数之前,系统要做三件事情:
(1)保存被调函数的计算结果;
(2)释放被调函数的数据区;
(3)依照被调函数保存的放回地址将控制转移到调用函数。
3、当有多个函数构成嵌套调用时,按照“后调用先返回的原则,上述函数之间的信息传递和控制转移必须通过栈来实现,即系统将整个过程中运行时所需的数据空间安排在一个栈中,每当调用一个函数时,就为它在栈顶分配一个存储区,每当从一个函数退出时,就释放它的存储区,则当前运行的函数的数据区必须要栈顶。