我正在檢查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文件編譯爲.app文件而不是.exe文件?
- 7. 文件被顯示爲目錄,而不是文件?
- 8. 文件安裝到C:\而不是C:\文件夾\
- 9. wsimport .wsdl:爲什麼生成.class文件而不是.java文件?
- 10. 爲什麼libtool尋找.lib文件而不是.a文件?
- 11. 爲什麼新文件(「c:\\ a」)不等於新文件(「c:\\ a」,「\\」)?
- 12. 爲什麼一些OpenCL示例用C++編寫而不是C?
- 13. Android NDK San Angeles示例中的app-win32.c文件是什麼?
- 14. 是在.c文件頭文件路徑參考包含在目標文件(.o)
- 15. 爲什麼公共部分變量只顯示在目標文件中而不是可執行文件?
- 16. 爲什麼Visual Studio認爲js文件是一個cs文件?
- 17. 爲什麼C文件以/ * [] */
- 18. 在目標c示例教程中使用C++文件
- 19. C++ wstring文件,而不是字符串
- 20. C:包括源文件,而不是頭
- 21. 什麼是「圖標?」文件?
- 22. 文件包含頭文件而不是文件名可能在C?
- 23. 什麼是C語言頭文件?
- 24. C++緩存文件是什麼意思?
- 25. C中的* .r文件是什麼?
- 26. Python/C「defs」文件 - 它是什麼?
- 27. Android的 - 爲什麼是IMarketBillingService文件的IADL文件,而不是的.java
- 28. asp.net c#瀏覽到文件夾,而不是文件
- 29. 爲什麼Hadoop hftp會提供目錄而不是文件?
- 30. mkdir總是創建一個文件,而不是一個目錄
因爲原因。這被認爲是對SO有效的問題的方式? – Avi
@Avi該示例項目由mailcore2的工程師完成。我想知道在設置這類延伸'mm'時他們的考慮是什麼。 – fans3210
投機事宜是無關緊要的。詢問mailcore的工程師。 – Avi