Я спросил других программистов, и они сказали, что карат ^
означает xor. Но, кажется, есть неясное использование карата, которое я не до конца понимаю. Кажется, что ^
суффикс типа изменяет его каким-то образом, например, как суффикс типа с *
объявляет его типом указателя. Приведенный ниже код работает, но кто-то может объяснить, почему и что происходит, и как символ карата позволяет мне объявлять литералы анонимной функции встроенными? Я не знал, что вы могли бы сделать это, но я хочу полностью понять эту таинственную функциональность.
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?