69

带有一些 Objective-C 的项目有一些 C 类,其实现文件具有.mm扩展名。

file.h
file.mm

.mm是什么意思?不应该只是.m吗?

4

3 回答 3

78

扩展.mmC++Objective-C编译器期望的编译单元的扩展,而.m扩展是CObjective-C编译器期望的编译单元的扩展。

这是假设您不使用编译器标志来覆盖文件扩展名,就像这位先生所做的那样

于 2012-04-26T14:19:32.700 回答
26

目标 C++,混合了 C++ 和目标 C。 http://en.wikipedia.org/wiki/Objective-C#Objective-C.2B.2B

于 2012-04-26T14:17:13.490 回答
19

.mm 文件类似于 Objective-C 编译器的 .cpp 文件。它们激活 C++ 编译器而不是 C 编译器。

以下关于性能的问题提供了额外的有用信息:

Objective-C,.m / .mm 的性能差异?

于 2012-04-26T14:16:38.127 回答