函数的调用和返回

函数调用分析

    对于一门有着递归特性的语言来说,区分函数的定义和函数的调用是十分有必要的。函数的定义定义了函数的行为,函数的调用则创建了一个函数的实例/活动对象。虽然一个函数只有一个定义,随着时间的流逝,它可能有很多不同的实例。对于一个递归函数来说,若干个实例可能会同时存在。

    每个函数实例都需要分配内存空间,在函数被调用直到退出的这段时间,一个函数的活动记录需要在内存中包括以下内容:

  • 本地存储   包括参数、本地变量、以及编译器在实现这个函数代码块时觉得有必要生成的辅助空间
  • 返回信息   当这次调用结束时,执行流程应该在哪里继续?怎样继续?

    活动记录指的是每个活动对象被分配的内存块。保存活动记录的内存只有在函数执行时才是有效的。一旦函数退出,这块内存就会被回收。

猜你喜欢

转载自www.cnblogs.com/xihui/p/9083915.html