2010-12-20 1 views
3

Objective-Cプロジェクトの中には、かなりの量のC関数を使用するファイルの一部が投影されていて、.mの代わりに.cというファイルにコードを格納していることに気付きました。私は.mがObjective-Cのためのもので、.cはCのものですが、.cを使用すると便利なことはありますか?.mできることはありますか?パフォーマンスの向上や合併症の恩恵はありますか? GCCやclangは、それぞれ異なるコードをコンパイルするのだろうか?.cファイルを使用していますか?

答えて

6

主な利点は、通常のCプログラムで.cファイルをそのまま使用できることと、互換性のないObjective-C構造を誤って組み込んでしまうことがないことです。

+0

2つのコンパイルの間に大きな違いがあると思いますか? –

+1

@Justin Meiners:いいえ、私はしません。私はObjective-CやC99としてコンパイルするのに多くの違いがあることに気づいたことはありません。 AFAIK、Objective-Cコンパイラは、GCCとClangの両方でObjective-CプログラムのプレーンC部分をプレーンCプログラムと同じ方法でコンパイルします。 Objective-C++についても同じことが当てはまりません。そのためのコンパイラは多少異なり、Objective-CまたはC++単独よりもコンパイル時間が長くなります。 – Chuck

2

はい、Xcodeは 'C'コンパイラで.cファイルをコンパイルし、 'Objective-C'コンパイラで.mファイルをコンパイルします。さまざまな言語オプションを使用するだけで、同じコンパイラバイナリです。その場合、相対的なパフォーマンスがあまりにも異なるとは思わないでしょう。

+0

だから、あなたはそれらの間に大きな違いはないと思いますか? –

+0

私は大きな違いは期待しません。 – ldav1s

0

ほかにも、.cはクロスプラットフォーム開発に適しています。あるプラットフォームから別のプラットフォームに移植する際のオーバーヘッドは非常に低く、ほとんど無視できます。 。ほとんどの場合、アプリケーションのバックエンドやモデルは、パフォーマンスが必要な場合に "C"を使用して開発され、マシンと直接対話する必要があります。ハードウェアやものとの相互作用など。

+0

ImはCコードについて質問していません。プロジェクトのほとんどがobjective-cであるときに.mファイルにCコードを入れないように頼んでいます。 –

関連する問題