[我注意到this declaration involving a caret (^) character固定在顶部的cdecl.org网站上:
// "cast foo into block(int, long long) returning double"
(double (^)(int , long long ))foo
有人可以在这里解释插入符号的目的是什么?这真的是C声明中的有效字符,还是某个内容的占位符?
插入符号是C语言扩展的一部分,可与blocks一起使用。块是Clang和Apple的GCC支持的C语言的扩展。它不是严格符合C的语言(也就是说,它不是C标准定义的核心C语言的一部分)。
被称为Block Variable Declaration
。使用功能指针样式表示法声明具有Block Variable Declaration
的变量,用Block type代替^
。