首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"long long (^blockFun)() = (long long (^)())moreBlockFun“是什么意思?

"long long (^blockFun)() = (long long (^)())moreBlockFun“是什么意思?
EN

Stack Overflow用户
提问于 2009-10-06 17:02:46
回答 1查看 231关注 0票数 1

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

在网络上,我看到了这样的代码:

代码语言:javascript
复制
long long (^blockFun)() = (long long (^)())moreBlockFun;

我认为它正在尝试创建一个期望返回long的块,并且我认为它也在某处进行一些强制转换。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-06 17:06:51

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

它是一团乱七八糟的东西,主要是从函数指针类型符号继承而来的,几乎每个C程序员在记住它之前都必须查找大约482次。你并不孤单!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1526849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档