title: 为什么函数调用要用栈实现？
topic: 编程
content: “调用栈”（call stack）既可以指具体实现，也可以指一种抽象概念由“栈帧”（stack frame）或者叫“活动记录”（activation record）构成的栈。狗肉 花与果 的答案是从具体实现的角度说的，我就说说抽象概念的角度。函数调用的局部状态之所以用栈来记录是因为这些数据的存活时间满足“后入先出”（LIFO）顺序，而栈的基本操作正好就是支持这种顺序的访问。举例说，假如有下面程序： int main a return 0
answerer_tags: 软件工程师、主攻高级编程语言虚拟机的设计与实现