【发布时间】:2010-03-26 12:30:03
【问题描述】:
我正在阅读《C++ 中的思考》(第 2 卷):
每当一个函数被调用时, 有关该功能的信息是 推入运行时堆栈中 激活记录实例 (ARI),也 称为堆栈帧。典型的堆栈 帧包含 (1) 的地址 调用函数(所以执行可以 返回它),(2)指向ARI的指针 函数的静态父级( 词法上包含的范围 调用函数,所以变量是全局的 可以访问该功能),以及 (3) 指向调用函数的指针 它(它的动态父级)。那条路 从逻辑上重复的结果 跟随动态父链接是 动态链或调用链
我无法理解作者作为函数的静态和动态父级的含义。也无法区分项目 1、2 或 3。它们似乎都是一样的。谁能给我解释一下这段话?
【问题讨论】:
-
我只能看到一个调用者和一个被调用者。而且我知道一旦被调用者返回,调用堆栈就会弹出一次(展开),这会导致帧指针递减并指向父函数(调用者)。
标签: c++ dynamic static parent callstack