我在维基百科上找到了access links的链接,但我无法清楚地了解什么是访问链接,以及它们与任何函数的返回地址有什么不同有人能简单地解释一下什么是访问链接以及为什么它在调用堆栈上是必要的吗?
最佳答案
例如,您实际上会在Pascal
或Java
中遇到这样的范例,而不是在C
中。
例如,在Java中,可以声明:
void func1() {
int outer = 2;
int func2() {
int inner = 3;
return inner+outer;
}
int result = func2();
}
在
func1
执行结束时,result
变量将包含5个本地定义的变量outer
和inner
的总和。access link
正是为了这个目的——将指向实际外部作用域的“指针”传递到内部函数中。编译器有Nested Functions extension这不是n.m提到的
gcc
标准的一部分关于c - 堆栈框架上的访问链接是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39230768/