Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 什么是;long long(^blockFun)(=(long long(^)()moreBlockFun";你的意思是什么?_Objective C - Fatal编程技术网

Objective c 什么是;long long(^blockFun)(=(long long(^)()moreBlockFun";你的意思是什么?

Objective c 什么是;long long(^blockFun)(=(long long(^)()moreBlockFun";你的意思是什么?,objective-c,Objective C,我正在努力有效地学习和使用积木 在网络上,我遇到了以下代码: long long (^blockFun)() = (long long (^)())moreBlockFun; 我认为它试图创建一个块,该块期望返回一个long,我认为它也在某处执行一些强制转换。这是一个块类型强制转换,是的,语法不太好。我们假设moreBlockFun是一个不带参数的块,并返回一些对long-long进行合理转换的内容-这种类型的签名被写入long-long(^)()。因此,我们为该块创建一个名为blockFun

我正在努力有效地学习和使用积木

在网络上,我遇到了以下代码:

long long (^blockFun)() = (long long (^)())moreBlockFun;

我认为它试图创建一个块,该块期望返回一个long,我认为它也在某处执行一些强制转换。

这是一个块类型强制转换,是的,语法不太好。我们假设
moreBlockFun
是一个不带参数的块,并返回一些对long-long进行合理转换的内容-这种类型的签名被写入
long-long(^)(
)。因此,我们为该块创建一个名为
blockFun
的新本地名称,语法为
long(^blockFun)(
),并执行强制转换


这是一个很大程度上继承自函数指针类型表示法的混乱局面,实际上每个C程序员在记住它之前必须查找大约482次。你并不孤单

这是块类型转换,是的,语法不太好。我们假设
moreBlockFun
是一个不带参数的块,并返回一些对long-long进行合理转换的内容-这种类型的签名被写入
long-long(^)(
)。因此,我们为该块创建一个名为
blockFun
的新本地名称,语法为
long(^blockFun)(
),并执行强制转换


这是一个很大程度上继承自函数指针类型表示法的混乱局面,实际上每个C程序员在记住它之前必须查找大约482次。你并不孤单

啊。。。令人惊叹的现在有道理了。你可以(也应该)引入
typedef
s,这样你就可以写“FooBlock”或类似的东西,省去在所有点上使用完整签名的主要麻烦。(1)使用typedef。它为疯狂的指针语法增添了理智。(2) 在创建块语法时,我意识到它使理解函数指针变得更容易。基本上,使用任何块声明,用*替换^啊。。。令人惊叹的现在有道理了。你可以(也应该)引入
typedef
s,这样你就可以写“FooBlock”或类似的东西,省去在所有点上使用完整签名的主要麻烦。(1)使用typedef。它为疯狂的指针语法增添了理智。(2) 在创建块语法时,我意识到它使理解函数指针变得更容易。基本上,使用任何块声明,用*替换^