Цель c — Что такое блок в C ++?

Возможный дубликат:
Что такое (double (^) (int)) foofoo

Я попытался найти определение в Google и SO, и я нашел примеры, в которых они используются, но не определены четко. Под «блоком» я подразумеваю символ каретки (^). я нашел это на сайте, где cdecl они описали:

(double (^)(int, long long )) foo

как

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

Я никогда не видел, чтобы этот символ использовался до сегодняшнего дня. Кто-нибудь может четко описать, что такое блок, и включить в него минимальный рабочий пример? Благодарю.

2

Решение

Блоки являются нестандартным расширением языка C (и не только Objective-C) от Apple. Они понимают замыкания (лямбда-функции, и т. д., как бы вы их ни называли) — в основном это неименованные функциональные объекты, заключающие в себе код, который можно вызвать. Они облегчают написание, например, управляемого событиями кода, где обратные вызовы используются исчерпывающе.

8

Другие решения

Других решений пока нет …