我在维基百科上找到了access links的链接,但我无法清楚地了解什么是访问链接,以及它们与任何函数的返回地址有什么不同有人能简单地解释一下什么是访问链接以及为什么它在调用堆栈上是必要的吗?

最佳答案

例如,您实际上会在PascalJava中遇到这样的范例,而不是在C中。
例如,在Java中,可以声明:

void func1() {
     int outer = 2;
     int func2() {
        int inner = 3;
        return inner+outer;
     }
     int result = func2();
}

func1执行结束时,result变量将包含5个本地定义的变量outerinner的总和。
access link正是为了这个目的——将指向实际外部作用域的“指针”传递到内部函数中。
编译器有Nested Functions extension这不是n.m提到的gcc标准的一部分

关于c - 堆栈框架上的访问链接是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39230768/

10-11 15:55
查看更多