为什么编译器允许下面的行没有错误或警告?它似乎应该抱怨“onSuccess”声明和定义中的参数不匹配。
我正在使用Xcode 4.6(LLVM 4.2)
void (^onSuccess)() = ^(AFHTTPRequestOperation *operation, id responseObject) {
};
答案 0 :(得分:2)
这似乎与C函数声明一样。引用C99标准:
(6.7.5.3/14)[...]函数声明符中的空列表不是该函数定义的一部分,它指定不提供有关参数数量或类型的信息。[.. ]
意思是,您可以声明一个函数(因为它似乎也是一个块)并且不提供有关参数的任何信息。