1

Possible Duplicate:
Is there a use for function declarations inside functions?

I know that inside function we can declare a function. What is the use of it? Can you please bring a simple example?

4

2 回答 2

6

在函数内部声明函数没有什么价值,除非您打算稍后定义它并且只让该函数可用 - 即,函数声明是封装的。

int main() {
    void foo();
    foo();
}
void some_other_func() {
    foo(); // ERROR
}
void foo() {
}

但就是这样。与触发 Most Vexing Parse 相比,这充其量只是一个极其有限的好处。

于 2011-10-05T08:30:49.330 回答
0

AFAIK,在 C/C++ 中的函数内部定义函数是非标准的,只有一些编译器支持它。但是,您可以使用新的 C++ 功能,即所谓的 lambda 函数。

在其他函数中定义函数(或 lambda 函数)可能有多种用途(取决于实现):

  1. 您将相关代码保持关闭,更易于阅读和理解。
  2. 内部函数可能能够直接访问外部函数的变量(因此,作为参数显式传递的东西更少)。
于 2011-10-05T08:29:49.550 回答