objective-c - 每个 Objective C 程序都会转换为 C 代码吗?

标签 objective-c c

由于 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/

相关文章:

c - 用户空间的汇编程序

objective-c - 当 macOS Catalina 中存在多个 NSScreen 时确定 NSScreen 上的鼠标光标 X 位置

c++ - 为具有内存限制的大 XML 优化的 XML 库

c - 将结构传递给函数

ios - UISearchController searchBar 框架仅在第一次点击时调整大小

c - Win XP,C程序: Query regarding int main() for child process

c - 在 C 中,指定 2.0f 是否与 2.000000f 相同?

iphone - 如何只允许单个 UIViewController 在横向和纵向方向上旋转?

iphone - 利用本周和周末在 2 个 NSDate 之间签到

objective-c - 在 Objective-C 中保留 block 中的可变变量而不引起循环引用