关于函数调用和尾递归的一点认识
摘要:
函数调用在大多数支持块结构的程序设计语言都支持函数或者子程序(函数和子程序的区别在于函数有返回值而子程序没有,在这里我们不区分这两个概念)。在进行函数调用和从函数返回时通常由一个被称为控制栈的运行时刻栈进行管理。每一个活跃的函数在控制栈中都会有一个相对应的活动记录,有时也称为栈帧。活动记录存储着函数调用时传递的参数信息和从函数返回时返回值与控制跳转的信息。函数的活动记录需要包括下面的信息控制链(control link):指向控制栈中前一个活动记录的指针;访问链(access link):指向源程序中最近的外层块对应的活动记录,用于维护静态作用域(本文中不讨论);返回地址:函数调用结束后被执行 阅读全文
posted @ 2012-03-08 18:00 lienhua34 阅读(2877) 评论(4) 推荐(4) 编辑