在函数内部声明函数的用法

The use of declaring function inside a function?

本文关键字:函数 用法 内部 声明      更新时间:2023-10-16

可能重复:
函数内部是否使用函数声明?

我知道在函数内部我们可以声明一个函数。它有什么用?你能举一个简单的例子吗?

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

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

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

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

在其他函数中定义函数(或lambda函数(有几种有用的方法(取决于实现(:

  1. 你把相关的代码放得很近,这样更容易阅读和理解
  2. 内部函数可以直接访问外部函数的变量(因此,作为参数显式传递的内容更少(