c - C 标准的哪一部分允许 LLVM 中的闭包(块)?
问题描述
LLVM C 编译器支持作为闭包的“块”,例如
typedef returnType (^MyTypeName)(parameterTypes);
MyTypeName blockName = ^returnType(parameters) {puts("OK");};
这是 C 标准的一部分,还是只是他们的发明来支持 Objective-C?
解决方案
允许它的 C 标准的部分是 C 2018 4 第 6 段:
……一个符合标准的实现可能有扩展(包括额外的库函数),只要它们不改变任何严格符合的程序的行为。
推荐阅读
- javascript - 如何在javascript中获取函数的结果?
- php - php代码有问题按类别过滤帖子
- firebase - flutter mockito:如何调用存储库函数进行测试
- javascript - 如何在谷歌应用脚本中使用静态方法
- discord - 我的不和谐机器人不响应我的命令
- python - 停止脚本的热键 - Python
- google-cloud-firestore - 使用虚幻引擎蓝图将数据写入 Firebase Firestore 的最佳方法?
- java - 我从 MySQL 获取数据以显示在 jTable 中,但出现异常
- python - 如何为具有多个数字列的给定 pandas 数据框创建排名表?
- java - 在 Java 中创建一个大的(例如 450MB+)bloomfilter