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

时间:2012-01-09 11:20:19

标签: objective-c c

由于Objective-C基本上是C的扩展,在将代码编译为本机代码之前,代码是否会转换为纯C代码?

如果是这样,转换是否发生在RAM上,或者编译器是否创建了包含C代码的临时文件,C编译器会将其编译为本机代码?

2 个答案:

答案 0 :(得分:8)

Objective-C 语法是C语法的扩展并不意味着它不能拥有自己的编译器。 C ++是一样的 - 它的语法与C兼容(大多数情况下,无论如何),但它有自己的一套工具。 C,C ++和Objective-C的编译器可以重复使用彼此的部分进行预处理,语法分析和代码生成,但不需要按顺序运行它们(例如,Objective-C ==> C ==>目标代码)。编译器也不再使用人类可读的汇编语言(很长一段时间也是如此)。

答案 1 :(得分:4)

不,Objective-C直接编译成汇编程序(假设是GCC)。