可能重复:
Is there a use for function declarations inside functions?
我知道在函数内部我们可以声明一个函数。有什么用?你能举一个简单的例子吗?
答案 0 :(得分:6)
在函数内部声明一个函数几乎没有价值,除非您打算稍后定义它并且只将它用于该函数 - 即函数声明被封装。
int main() {
void foo();
foo();
}
void some_other_func() {
foo(); // ERROR
}
void foo() {
}
但就是这样。与触发最令人烦恼的解析相比,这是一个非常有限的好处。
答案 1 :(得分:0)
AFAIK,在C / C ++中定义函数内部的函数是非标准的,只有一些编译器支持它。但是,您可以使用新的C ++功能,即所谓的lambda函数。
在其他函数内部定义函数(或lambda函数)可能有多种用途(取决于实现):