什么是C++中的块?

tem*_*boy 2 c++ objective-c objective-c-blocks

可能重复:
什么是(double(^)(int))foofoo

我已经尝试在Google和SO上搜索定义,我找到了使用它们但没有明确定义的示例."块"是指插入符号(^).我在他们描述的cdecl网站上找到了它:

(double (^)(int, long long )) foo
Run Code Online (Sandbox Code Playgroud)

cast foo into block(int, long long) returning double

我从来没有见过这个今天之前用过的符号.任何人都可以清楚地描述一个块是什么,并包含一个最小的工作示例吗?谢谢.

小智 8

是Apple的C(而不仅仅是Objective-C)语言的非标准扩展.他们实现了闭包(lambda函数等,但你称之为) - 基本上它们是未命名的函数式实体,包含可以调用的代码.它们有助于编写例如事件驱动的代码,其中回调被彻底地使用.