【问题标题】:Does swift support C natively?swift是否原生支持C?
【发布时间】:2016-06-11 12:23:46
【问题描述】:

Objective C 可以本地编译 C。 Objective C 是基于 C 构建的。swift 可以做同样的事情吗?如果不是,有什么区别。

【问题讨论】:

  • 好吧,Swift 编译器不编译 C,但是你可以在 Xcode 项目中混合 C 和 Swift,它们可以相互调用。
  • Objc 是 C 的超集。Swift 旨在与包括 C API 在内的 Objc API 进行互操作,但您不能将 C 代码和 Swift 代码合并到一个文件中

标签: ios swift


【解决方案1】:

与 Objective-C which is a proper superset of C 不同,Swift 被构建为一种全新的语言。 Swift 无法编译 C 代码,因为语法不兼容。

Swift 可以与 C 代码互操作(请参阅Interacting with C APIs 文章了解更多信息)。但是,API 背后的 C 代码需要使用 C 编译器单独编译。

【讨论】:

    【解决方案2】:

    Swift 使用 swift 编译器进行解析,然后使用 LLVM 来优化和生成代码。因此 swift 编译器无法解析 C 语法。

    由于 ObjectiveC 使用 clang 编译器(编译 C、C++、ObjectiveC 语言)生成语法树和 LLVM 以进行优化和代码生成。因此我们可以将 C 与 Objective C 一起使用。所以 Clang 可以解析 C/C++/objective C 代码,生成语法树,进行语义分析,LLVM 进行后端编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 2015-03-26
      相关资源
      最近更新 更多