【问题标题】:What part of the C standard allows for closures (blocks) in LLVM?C 标准的哪一部分允许 LLVM 中的闭包(块)?
【发布时间】:2021-09-30 20:34:42
【问题描述】:

LLVM C 编译器支持“块”,例如闭包

typedef returnType (^MyTypeName)(parameterTypes);
MyTypeName blockName = ^returnType(parameters) {puts("OK");}; 

这是 C 标准的一部分,还是只是他们发明来支持 Objective-C?

【问题讨论】:

    标签: c objective-c llvm


    【解决方案1】:

    C 标准中允许它的部分是 C 2018 4 第 6 段:

    ... 符合标准的实现可能有扩展(包括额外的库函数),前提是它们不会改变任何严格符合标准的程序的行为。

    【讨论】:

      猜你喜欢
      • 2012-08-25
      • 2014-12-16
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 2023-01-20
      相关资源
      最近更新 更多