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 回答