理解 C 中的“克拉”函数?

用户12840693

我问过其他程序员,他们说克拉^是异或。但似乎有一个我不完全理解的克拉的晦涩用法。似乎^给类型添加后缀会以某种方式修改它,就像给类型添加后缀如何将其*声明为指针类型一样。下面的代码有效,但有人可以解释为什么和发生了什么,以及克拉符号如何允许我内联声明匿名函数文字?我不知道你能做到这一点,但我想完全理解这个神秘的功能。

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?

在此处输入图片说明

埃里克·波斯皮希尔

这是 Apple 对 C 的扩展,称为Blocks,用于Grand Central Dispatch

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章