了解C中的“克拉”功能?

问题描述 投票:0回答:1

[我问其他程序员,他们说克拉^表示异或。但是,似乎我不太了解克拉的用法。似乎在^后缀类型以某种方式对其进行了修改,例如如何在*后缀类型将其声明为指针类型。下面的代码有效,但是有人可以解释为什么以及发生了什么,以及克拉符号如何允许我内联声明匿名函数文字?我不知道您可以做到这一点,但我想完全了解这种神秘的功能。

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?

enter image description here

c function literals
1个回答
1
投票

这是Apple的C扩展,名为Blocks,表示Grand Central Dispatch

© www.soinside.com 2019 - 2024. All rights reserved.