3

重複の可能性:
(double(^)(int))foofooとは

GoogleとSOで定義を検索してみましたが、それらが使用されているが明確に定義されていない例を見つけました。「ブロック」とは、カレット記号(^)を意味します。私は彼らが説明したcdeclのサイトでそれを見つけました:

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

なので

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

今日までこのシンボルが使われているのを見たことがありません。誰かがブロックとは何かを明確に説明し、それに最小限の実用的な例を含めることができますか?ありがとう。

4

1 に答える 1

8

ブロックは、Apple による C (Objective-C だけでなく) 言語に対する非標準の拡張機能です。それらはクロージャー(ラムダ関数など、どのように呼んでも)を実現します-基本的に、それらは名前のない関数のようなエンティティであり、呼び出すことができるコードを囲みます。これらは、コールバックが徹底的に使用されるイベント駆動型コードなどの記述を容易にします。

于 2012-09-04T19:31:49.183 に答える