c - 了解 C 中的“克拉”函数?
问题描述
我问了其他程序员,他们说克拉^
是异或的意思。但似乎克拉有一个晦涩的用法,我并不完全理解。似乎^
为类型添加后缀会以某种方式对其进行修改,例如为类型添加后缀如何将其*
声明为指针类型。下面的代码有效,但有人可以解释为什么和发生了什么,以及克拉符号如何允许我内联声明匿名函数文字?我不知道你能做到这一点,但我想完全理解这个神秘的功能。
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。
推荐阅读
- php - 使用静态属性构建的子类上的 PHP 7.1.3 Foreach 打印出意外的输出
- perl - 如果我想获得命令的输出,如何修复错误“命令行太长”?
- vba - 访问 VBA 抛出“运行时错误 7 - 内存不足”
- javascript - 返回 jQuery 元素的函数返回未定义
- django - 无法模拟遍历 for 循环的 django 查询对象
- macos - 如何在 Xamarin.Mac 中的应用程序级别捕获按键事件
- angular - Angular - PrimeNg - 文件上传 - PDF 文件未在 AWS S3 存储桶中正确上传
- nativescript - 如何在 NativeScript 中调试/显示所有网络请求?
- python - 有什么方法可以测试并给出真/假语句以查看文件是否存在,Python
- unity3d - 玩家的跳跃限制