我通常默认使用 .mm 扩展名创建新类,这样如果需要的话可以后续使用ObjC++.
这样做有什么缺点吗?什么情况下您会更喜欢使用 .m
?.m
编译出来的可执行文件是否更快(因为 C 通常比 C++ 快)?
我通常默认使用 .mm 扩展名创建新类,这样如果需要的话可以后续使用ObjC++.
这样做有什么缺点吗?什么情况下您会更喜欢使用 .m
?.m
编译出来的可执行文件是否更快(因为 C 通常比 C++ 快)?
.mm
而不是.m
对于“普通”的Objective-C来说主要的缺点是Objective-C++的编译时间显著较长。这是因为C++编译器比C编译器需要更长的时间。.m
。如果后来需要在开发中使用Objective-C++,将文件重命名为.mm
扩展名是没有问题的。如果在Xcode中这样做,项目将自动更新以使用新命名的文件。2012年2月17日更新 自Xcode 4.0(带有LLVM 3.0)起,Clang已支持Objective-C ++。即使是C ++11的支持现在也非常强大。
.m
是Obj-C文件的默认扩展名。正如提到的,这些东西的编译方式有一些不同。例如,C结构体被实现为类,其数据成员默认具有公共可见性,而不是在C中的原始实现。 - Andrew Noyes