web-dev-qa-db-ja.com

C言語:.mm拡張子は何を表していますか?

Objective-Cを使用するプロジェクトには、実装ファイルに。mm拡張子を持つCクラスがいくつかあります。

file.h
file.mm

。mmはどういう意味ですか? 。mだけではいけませんか?

45
aneuryzm

拡張子.mmは、Objective-Cコンパイラが期待するC++コンパイルユニットの拡張子であり、.m拡張子は、Cコンパイルユニットが期待する拡張子です。 Objective-Cコンパイラ。

これは、ファイル拡張子をオーバーライドするためにコンパイラフラグを使用しないことを前提としています この紳士がしたように

54
Edwin Buck

Objective C++、C++とObjective Cを組み合わせています。 http://en.wikipedia.org/wiki/Objective-C#Objective-C.2B.2B

21
djechlin

.mmファイルは、Objective-Cコンパイラにとって.cppファイルに似ています。 CコンパイラーではなくC++コンパイラーをアクティブにします。

パフォーマンスに関する次の質問には、追加の有用な情報があります。

Objective-C、.m/.mmのパフォーマンスの違い?

16
Almo