我正在检查mailcore 2示例演示的源代码。 IOS项目有一个类“MCOMessageView.mm”。这是一个非常好的帮助类,有一个webview和几个代表html渲染的代表。那么为什么使用'mm'作为它的文件扩展名,因为它不包含任何C++代码。为什么在Mailcore2示例'MCOMessageView'文件是一个C++文件而不是目标c文件?
2
A
回答
2
一些用于处理ObjC++的开发人员默认为他们的ObjC类使用.mm扩展名,即使不需要C++代码,以便他们稍后可以在需要时使用ObjC++。
MailCore使用ObjC++默认,默认为类,以便.mm扩展,即使在当时他们是在它没有C++代码,它可以在将来添加。
它几乎不花费运行时间,所以它只是一种做事的方式。而且由于LVVM,它在构建时的代价很小
另一种可能性是它们在C++之前版本的文件中,并且在提交之后提交,C++代码被替换,并且他们不打扰重命名该类,因为他们仍然可以在将来添加一些C++代码,并且他们希望保持自由。
1
之所以使用.mm是,它会提示的Xcode它需要的C++运行时连接最后的二进制文件。 如果我使用.m,我将不得不明确传递一个标志。
相关问题
- 1. File.Copy目标文件是一个目录,而不是文件。
- 2. 目标C的Nib文件是什么?
- 3. .c文件而不是.m文件?
- 4. 什么是“+”是指在Objective-C文件
- 5. 文件是一个目录而不是文件
- 6. 为什么新文件(“c:\\ a”)不等于新文件(“c:\\ a”,“\\”)?
- 7. 为什么一些OpenCL示例用C++编写而不是C?
- 8. 是在.c文件头文件路径参考包含在目标文件(.o)
- 9. 为什么公共部分变量只显示在目标文件中而不是可执行文件?
- 10. 为什么Visual Studio认为js文件是一个cs文件?
- 11. C++ wstring文件,而不是字符串
- 12. C:包括源文件,而不是头
- 13. 什么是“图标?”文件?
- 14. 什么是C语言头文件?
- 15. C中的* .r文件是什么?
- 16. Python/C“defs”文件 - 它是什么?
- 17. C++缓存文件是什么意思?
- 18. asp.net c#浏览到文件夹,而不是文件
- 19. 什么是一个指针在C文件
- 20. 为什么phpmyadmin显示文件列表而不是数据库?
- 21. C++程序处理两个文件而不是一个
- 22. 什么是我的C#bin文件夹中的vshost文件?
- 23. 什么是头文件和C++中的实现文件?
- 24. C++为什么不创建.lib文件?
- 25. 根据boost :: filesystem,这个文件为什么不是一个普通文件?
- 26. .s文件在C项目中的作用是什么?
- 27. Frama-c生成一个图形对象,而不是点文件
- 28. C#:读取文件,该文件是嵌入在一个资源文件
- 29. 什么时候一个.c文件没有关联.h文件?
- 30. Visual C++ 10 - 不断尝试构建项目而不是文件?
因为原因。这被认为是对SO有效的问题的方式? – Avi
@Avi该示例项目由mailcore2的工程师完成。我想知道在设置这类延伸'mm'时他们的考虑是什么。 – fans3210
投机事宜是无关紧要的。询问mailcore的工程师。 – Avi