我正在檢查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