了解 C 中的 "Carat" 函数?
Understanding "Carat" functions in C?
问过其他程序员,他们说carat^
是异或的意思。但似乎我不完全理解 carat 的模糊用法。似乎 ^
后缀类型以某种方式修改它,就像如何用 *
后缀类型声明它是指针类型。下面的代码有效,但有人可以解释为什么以及发生了什么,以及克拉符号如何允许我内联声明匿名函数文字吗?我不知道你可以这样做,但我想完全理解这个神秘的功能。
void(^Function)(void);
int main(int argc, char *argv[]) {
Function = ^{
int x = 10;
printf("%d\n", x);
};
Function();
Function = ^{
putchar(65);
};
Function();
return 0;
}
此外,这是一些编译器扩展还是纯 C 语言?
这是一个名为 Blocks, for Grand Central Dispatch 的 C 的 Apple 扩展。
问过其他程序员,他们说carat^
是异或的意思。但似乎我不完全理解 carat 的模糊用法。似乎 ^
后缀类型以某种方式修改它,就像如何用 *
后缀类型声明它是指针类型。下面的代码有效,但有人可以解释为什么以及发生了什么,以及克拉符号如何允许我内联声明匿名函数文字吗?我不知道你可以这样做,但我想完全理解这个神秘的功能。
void(^Function)(void);
int main(int argc, char *argv[]) {
Function = ^{
int x = 10;
printf("%d\n", x);
};
Function();
Function = ^{
putchar(65);
};
Function();
return 0;
}
此外,这是一些编译器扩展还是纯 C 语言?
这是一个名为 Blocks, for Grand Central Dispatch 的 C 的 Apple 扩展。