由于 Objective-C 基本上是 C 的扩展,代码在编译为 native 代码之前是否会转换为纯 C 代码?
如果是这样,转换是在 RAM 上发生,还是由编译器在磁盘上创建一个包含 C 代码的临时文件,该文件由 C 编译器进一步编译为 native 代码?
最佳答案
Objective-C syntax 是 C 语法的扩展并不意味着它不能有自己的编译器。 C++ 也是如此——它的语法与 C 兼容(无论如何,在大多数情况下),但它有自己的一套工具。 C、C++ 和 Objective-C 的编译器可以重用彼此的部分进行预处理、语法分析和代码生成,但不需要顺序运行它们(例如 Objective-C ==> C ==> 目标代码)。编译器也不再使用人类可读的汇编语言(很长一段时间以来也是如此)。
关于objective-c - 每个 Objective C 程序都会转换为 C 代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787608/