C "block" 插入字符
C "block" caret character
我注意到 this declaration involving a caret (^) character 固定在顶部的 cdecl.org 网站上:
// "cast foo into block(int, long long) returning double"
(double (^)(int , long long ))foo
有人可以解释这里插入符号的用途是什么吗?这真的是 C 声明中的有效字符,还是某物的占位符?
插入符号是与 blocks 一起使用的 C 语言扩展的一部分。 Blocks 是 C 语言的扩展,受 Clang 和 Apple 的 GCC 支持。它不严格符合 C(即,不是 C 标准定义的核心 C 语言的一部分)。
众所周知,Block Variable Declaration
. A variable with Block type 是使用函数指针样式符号声明的,用 ^
代替 *
。
我注意到 this declaration involving a caret (^) character 固定在顶部的 cdecl.org 网站上:
// "cast foo into block(int, long long) returning double"
(double (^)(int , long long ))foo
有人可以解释这里插入符号的用途是什么吗?这真的是 C 声明中的有效字符,还是某物的占位符?
插入符号是与 blocks 一起使用的 C 语言扩展的一部分。 Blocks 是 C 语言的扩展,受 Clang 和 Apple 的 GCC 支持。它不严格符合 C(即,不是 C 标准定义的核心 C 语言的一部分)。
众所周知,Block Variable Declaration
. A variable with Block type 是使用函数指针样式符号声明的,用 ^
代替 *
。