0

コンパイラがエラーや警告なしで以下の行を許可するのはなぜですか? 「onSuccess」宣言と定義のパラメータの不一致について文句を言うべきだと思われます。

Xcode 4.6 (LLVM 4.2) を使用しています

void (^onSuccess)() = ^(AFHTTPRequestOperation *operation, id responseObject) {
};
4

1 に答える 1

2

これは、C 関数宣言と同じように機能するようです。C99 標準から引用するには:

(6.7.5.3/14) [...]その関数の定義の一部ではない関数宣言子の空のリストは、パラメーターの数または型に関する情報が提供されないことを指定します。[...]

つまり、関数を宣言し (ブロックのようにも見えます)、パラメーターに関する情報を提供しなくてもかまいません。

于 2013-02-06T03:34:52.097 に答える