I\'ve noticed that this declaration involving a caret (^) character is pinned on the cdecl.org site at the top:
// \"cast foo into block(int, long long) retu
The caret is part of an extension to the C language to work with blocks. Blocks are an extension to C supported by Clang and Apple’s GCC. It is not strictly conforming C (that is, not part of the core C language defined by the C standard).
It is known as Block Variable Declaration. A variable with Block type is declared using function pointer style notation substituting ^
for *
.