在函数内部使用声明函数?

发布于 2024-12-08 09:43:36 字数 246 浏览 0 评论 0原文

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

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

喵星人汪星人 2024-12-15 09:43:36

在函数内部声明函数没有什么价值,除非您打算稍后定义它并且仅使其可供该函数使用 - 即函数声明被封装。

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

但仅此而已。与触发最令人烦恼的解析相比,这充其量只是一个极其有限的好处。

There is little value to declaring a function inside a function, unless you intend on defining it later and only having it available to that function- i.e., the function declaration is encapsulated.

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

But that's it. In comparison to triggering the Most Vexing Parse, this is an extremely limited benefit at best.

旧竹 2024-12-15 09:43:36

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

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

  1. 将相关代码放在一起,这样更容易阅读和理解。
  2. 内部函数可以直接访问外部函数的变量(因此,需要显式作为参数传递的内容较少)。

AFAIK, defining functions inside functions in C/C++ is non-standard and only some compilers support it. However, you can use the new C++ feature, so-called lambda functions.

Defining functions (or lambda functions) inside of other functions can be useful in several ways (depending on the implementation):

  1. You keep related code close, it's easier to read and understand.
  2. The inner functions may be able to access directly variables of the outer functions (hence, less stuff to pass explicitly as parameters).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文