【发布时间】:2018-05-09 03:53:08
【问题描述】:
我在 linux 上使用 clang。 格式化这个块的正确方法是什么?
(int ^(int, char**)) (^f2b)(int, char**) = (int ^(int, char**)) ((int (*func)(int, char**)))
{
return int ^(int argc, char** argv){ func(argc, argv)};
};
我遇到了一个错误
error: type-id cannot have a name
int (^f2b)(int, char**) = (int ^(int, char**)) ((int (*func)(int, char**)))
错误下划线(*func)。
我正在尝试创建一个块,该块接受名为 func 作为参数的函数指针,并返回一个块,该块使用传递的参数调用该 func。
【问题讨论】:
-
@TypeIA 它是“C”
-
@AnttiHaapala 好吧,也许我要学点东西了……插入符号是怎么回事?
-
我认为它只是技术上的“C”。块是 clang clang.llvm.org/docs/BlockLanguageSpec.html 的一个特性,我正在努力学习使用它们,因为我喜欢高阶函数。
-
@TypeIA 它们是块的 Clang 扩展
-
无论如何,
func是一个可能不应该出现的名字。
标签: c clang objective-c-blocks