Objective-Cプロジェクトの中には、かなりの量のC関数を使用するファイルの一部が投影されていて、.m
の代わりに.c
というファイルにコードを格納していることに気付きました。私は.m
がObjective-Cのためのもので、.c
はCのものですが、.c
を使用すると便利なことはありますか?.m
できることはありますか?パフォーマンスの向上や合併症の恩恵はありますか? GCCやclangは、それぞれ異なるコードをコンパイルするのだろうか?.cファイルを使用していますか?
答えて
主な利点は、通常のCプログラムで.cファイルをそのまま使用できることと、互換性のないObjective-C構造を誤って組み込んでしまうことがないことです。
はい、Xcodeは 'C'コンパイラで.cファイルをコンパイルし、 'Objective-C'コンパイラで.mファイルをコンパイルします。さまざまな言語オプションを使用するだけで、同じコンパイラバイナリです。その場合、相対的なパフォーマンスがあまりにも異なるとは思わないでしょう。
だから、あなたはそれらの間に大きな違いはないと思いますか? –
私は大きな違いは期待しません。 – ldav1s
ほかにも、.cはクロスプラットフォーム開発に適しています。あるプラットフォームから別のプラットフォームに移植する際のオーバーヘッドは非常に低く、ほとんど無視できます。 。ほとんどの場合、アプリケーションのバックエンドやモデルは、パフォーマンスが必要な場合に "C"を使用して開発され、マシンと直接対話する必要があります。ハードウェアやものとの相互作用など。
ImはCコードについて質問していません。プロジェクトのほとんどがobjective-cであるときに.mファイルにCコードを入れないように頼んでいます。 –
- 1. C#でpydファイルを使用していますか?
- 2. C#を使用して連続ファイルを作成しますか?
- 3. extern "C"を定義しているファイルで使用しますか?
- 4. C++を使用してfastcgiを実装していますか?
- 5. C#PrintWindowを使用しています
- 6. C++プログラムで複数の.cppファイルを使用していますか?
- 7. C libwebsocketsを使用してオーディオストリームをファイルに保存します。
- 8. c#でセレンウェブドライバを使用してファイルをアップロードします。
- 9. C#を使用してXMLファイルからデータを削除しますか?
- 10. C#を使用してExcelファイルからメタデータを削除しますか?
- 11. CでWriteAllTextを使用している間に別のプロセスがファイルを使用しています。
- 12. hassyファイルを使用しています。
- 13. ファイルをデータベースとして使用していますか?
- 14. Cの '...'パラメータパックをC++のテンプレート値として使用していますか?
- 15. C++でグラフィックスのないpanda3dを使用していますか?
- 16. C#でform.csまたはprogram.csを使用していますか?
- 17. タイマーがC#を使用してファイルを作成していません
- 18. c#を使用してURLからファイルをダウンロードするには
- 19. C#を使用して.xsnからファイルを抽出する#
- 20. web2を使用して、angle2からファイルをアップロードする。c#
- 21. C#を使用してXMLファイルからパスを取得する
- 22. C++でexit()を正しく使用していますか?
- 23. C/C++を使用して.comファイルを作成するには?
- 24. C#を使用して、実行ファイルの絶対パスを取得しますか?
- 25. extern "C"を使用してC++で(醜い)Cコードを使用
- 26. c#メソッドを使用してステートメントを使用できますか?
- 27. .aファイルを使用してcファイルをコンパイルするコマンド
- 28. JavaScriptを使用してBase 64からファイルを変換し、C#
- 29. .dllファイルを正しく使用していますか?
- 30. シングルページアプリケーション用のjavascriptを使用してDropboxにファイルをアップロードしていますか?
2つのコンパイルの間に大きな違いがあると思いますか? –
@Justin Meiners:いいえ、私はしません。私はObjective-CやC99としてコンパイルするのに多くの違いがあることに気づいたことはありません。 AFAIK、Objective-Cコンパイラは、GCCとClangの両方でObjective-CプログラムのプレーンC部分をプレーンCプログラムと同じ方法でコンパイルします。 Objective-C++についても同じことが当てはまりません。そのためのコンパイラは多少異なり、Objective-CまたはC++単独よりもコンパイル時間が長くなります。 – Chuck