我的教授告诉我们这段代码:
timerX(int x){
int times(int y){
return x * y;
}
return times;
}
Run Code Online (Sandbox Code Playgroud)
这在C中是如何工作的(使用GCC编译器)?他说,一旦函数消失,内部函数就会消失?我感谢任何提示或建议.
它被称为嵌套函数,GNU扩展.基本上
内部函数可以访问外部函数的局部变量(在其外观之前声明的那些)
内部函数只能通过函数poinyers从外部调用,但是如果内部函数从其父函数访问对象,则不能在包含函数终止后调用
在您的示例中,从外部调用该函数指针可能是非法的.
如果你试图在包含函数退出后通过其地址调用嵌套函数,那么所有的地狱都会破裂.