Sam*_*Sam 29 iphone objective-c objective-c++
在创建新类时,我倾向于默认使用.mm扩展名,以便我可以在以后使用ObjC++.
这样做有什么不利吗?你.m
什么时候喜欢?并.m
编译成可执行更快(这是由于C通常比C++更快)?
Bar*_*ark 45
使用的主要缺点.mm
超过.m
了"正常"的Objective-C是编译时间是Objective-C的显著高于++.这是因为C++编译器比C编译器花费更长的时间.使用Xcode 3.2及更高版本,Objective-C代码可以使用Clang前端工具链来显着加快Objective-C/C编译时间.由于Clang还不支持Objective-C++/C++,这进一步扩大了两者之间编译时间的差距.
更好的策略是.m
默认使用.如果您稍后需要在开发中使用Objective-C++,则重命名文件以使用.mm
扩展名没有任何害处.如果是这样,那么在XCode中,项目将自动更新以使用新命名的文件.
当然,一旦您尝试在运行时比较Objective-C++与Objective-C性能,所有标准警告都适用.由于Objective-C++是C++超集,而Objective-C是C超集,因此您处理两种不同的语言,每种语言在运行时都具有性能权衡.鉴于您完全使用Objective-X,您可能正在编写用户级应用程序(而不是系统级应用程序),C和C++之间的性能差异可能完全取决于您编写高效算法的能力.每种语言.如果您是C++开发人员,那么您可能会比C语言编码更好,反之亦然.因此,与往常一样,使用适当的工具来完成工作.
作为参考,您可能也对此答案感兴趣:适用于iPhone的C vs C++(Objective-C vs Objective-C++)
更新2012年2月17日从Xcode 4.0(使用LLVM 3.0)开始,Clang支持Objective-C++.即使是C++ 11支持也非常强大.
如果您只使用C功能,.mm文件应生成与.m非常相似的代码
当您需要C++功能时,将文件从.m重命名为.mm也没有任何缺点
归档时间: |
|
查看次数: |
26898 次 |
最近记录: |