我有来自维基百科的access links,但我无法清楚地了解访问链接是什么以及它们与任何功能的返回地址有何不同。有人可以简要解释一下访问链接是什么以及为什么在调用堆栈中需要它?
答案 0 :(得分:5)
您实际上会在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
正是为了这个目的 - 将“指针”传递给实际的外部范围到内部函数中。
gcc
编译器Nested Functions extension不是{n}提到的C
标准的一部分