703

.ccC++コードがと.cppファイルの両方として保存されているのを見てきました。2つの間に違いはありますか?

Googleスタイルガイドは示唆しているようです.ccが、説明はありません。

私は主にLinuxシステム上のプログラムに関心があります。

4

17 に答える 17

842

結局のところ、C ++コンパイラはどちらの形式のファイルも処理できるため、問題ではありません。それがチーム内の本当の問題である場合は、コインを投げて実際の作業に進みます。

于 2009-10-09T17:25:07.880 に答える
349

GNU GCC は、次のすべてを C++ ファイルとして認識し.C、 gccまたはg++.ccのどちらから呼び出すかに関係なく、C++ コンパイルを使用し.cppます。.CPP.c++.cp.cxx

.C- GCCではケースが重要であることに注意してください。これは.cCファイルです.Cが、C++ファイルです(コンパイラーにコンパイル対象を決定させる場合)。

GCC は、特別な処理を示す他の接尾辞もサポートしています。たとえば、.iiファイルは C++ としてコンパイルされますが、前処理はされません (個別に前処理されたコードを対象としています)。認識されているすべての接尾辞は、gcc.gnu.orgで詳しく説明されています。

于 2009-10-09T21:23:17.633 に答える
291

コンパイラ以外のツールを考慮しながら、使用する拡張機能を決定することは、自分に合った答えを見つけるのに役立つ優れたアプローチです。

.cc私が見つけたvs.cpp情報を支援するために、以下を追加したかっただけです。以下は、さまざまな環境ごとに分類された拡張機能です (「C++ Primer Plus」ブックから)。

Unix の使用: .C.cc.cxx.c

GNU C++ の使用: .C, .cc, .cxx, .cpp,.c++

Clang の使用: .C.cc.cxx.cppおよびモジュール インターフェイス.c++.cppm

Digital Mars の用途: .cpp.cxx

Borland C++ は以下を使用します。.cpp

ワトコムは以下を使用します: .cpp

Microsoft Visual C++ では .cpp、 、.cxx.ccおよび.ixxモジュール インターフェイスにも使用されます。

Metrowerks CodeWarrior の使用 : .cpp.cp.cc.cxx.c++

環境が異なれば、サポートされる拡張機能も異なります。私もこの質問に答えようとしていて、この投稿を見つけました。この投稿に基づいて、クロスプラットフォーム/クロスツールの認識を容易にするために、私は一緒.hppに行くかもしれないと思います..cpp

于 2010-07-11T16:31:41.360 に答える
88

.cpp私の知る限り、C++の推奨拡張機能です。.hppCと区別するために、C++ヘッダーに使用することを推奨する人もいます。

コンパイラはあなたが何をするかを気にしませんが、それは個人的な好みです。

于 2009-10-09T17:25:59.953 に答える
41

私は個人的に、実装ファイル、ヘッダー、およびインライン/テンプレートに.cc拡張子を使用しています。.hh.inl

前述したように、それは主に好みの問題です。

.cc私が見た限りは、. cppよりウィンドウっぽいようです。

- - 編集

前述のとおり、これは「私が見たもの」であり、間違っている可能性があります。私が取り組んできたすべての Windows プロジェクトが を使用.cppし、多くのオープン ソース プロジェクト (主に UNIX 系のもの) が を使用しているだけ.ccです。

を使用したコーディング スタイルの例.cc:

于 2009-10-09T18:12:00.630 に答える
22

使用されるその他のファイル拡張子には、.cxxおよび.C(大文字のC)が含まれます。ビャーネ・ストロヴルプが.C元々使っていたと思います。.cppはCプリプロセッサの名前なので、C++でも使用されていたのは残念です。

于 2009-10-09T17:26:34.340 に答える
19

もう1つのオプションは、プラス回転45°であると想定される場合です.cxxx

Windows、Mac、Linuxはすべてサポート.c++しているので、それを使用する必要があります。

于 2009-10-09T17:28:59.873 に答える
15

.cc何の意味もないと言っている人もいますか?かもしれない。C++ は「C with Classes」として誕生しました。

ほとんどの Unix システム (それぞれ cコンパイラーと c プリプロセッサー) のコマンド名でもあります.cc.cpp

私は.cppもっ​​ぱら使用していますが、Windowsで始めました。.ccはむしろ Unix の慣習に近いものですが、そこにもますます少なくなっています。GNU make にはルールが.cppあるため、おそらくそれが好まれます。デフォルトでは、Windows とその他すべての両方で動作します。一方、最新の C++ ではヘッダーに拡張機能がまったく使用されていません。私のプロジェクトはすべてヘッダー ファイルに使用し、 and testing.hを介して C と C++ の両方を可能な限りサポートしています。extern "C"__cplusplus

于 2009-10-09T19:32:51.807 に答える
14

プロジェクト/チームで使用されている規則に従ってください。

于 2009-10-09T17:26:19.500 に答える
11

.cc私が取り組んだプロジェクトで個人的に見たことはありませんが、すべての技術において、コンパイラーは気にしません。

誰が気にするのはあなたのソースに取り組んでいる開発者なので、私の経験則はあなたのチームが快適なものを使うことです。あなたの「チーム」がオープンソースコミュニティである場合は、非常に一般的なもの.cppを使用してください。その中で最も人気があるようです。

于 2009-10-09T17:30:28.000 に答える
11

.cc 拡張子は、makefile 内で暗黙の規則を使用するために必要です。これらのリンクに目を通し、メイクファイルをよりよく理解しますが、.cc 拡張子の有用性が明確に示されているため、主に 2 番目のリンクを参照してください。

ftp://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_2.html

https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_10.html

たった今、これを知りました。

于 2017-05-30T08:53:55.870 に答える
10

ほとんどのスタイル規則と同様に、重要なことは 2 つだけです。

  1. 可能な限り、使用するものに一貫性を持たせてください。
  2. 使用されている特定の選択肢に依存するものを設計しないでください。

これらは矛盾しているように見えるかもしれませんが、それぞれ独自の理由で価値があります。

于 2009-10-09T17:53:41.863 に答える
8

.C.cc私が見た(少数の)Unix指向のC++プログラムの標準のようです。私は常に.cpp自分自身を使用してきました.Windowsでのみ実際に作業しており、それが永遠にWindowsの標準であったためです。

.cpp「C Plus Plus」の略なので個人的にはオススメです。もちろん、ファイル拡張子が頭字語であることは非常に重要ですが、この理論的根拠が十分に説得力がないことを証明する場合、他の重要なことは、シフトキーを使用しないこと (.Cおよびを除外.c++) と、可能であれば正規表現のメタ文字を回避すること (除外する.c++--残念ながら、もちろん回避することはできません.。)

これは.cc.

于 2009-10-09T18:04:41.203 に答える
8

ソースとヘッダーにそれぞれ .C と .h を使用しました。この選択の良い点の 1 つは、コマンド ラインで*.[Ch]すべてのコード ファイルを簡単に選択できることです。.C大文字と小文字を区別しないファイルシステムでは使用が問題になる可能性がありますが、foo.cfoo.C同じディレクトリにある場合は、とにかく得られるものに値します:)

于 2009-10-09T19:58:42.440 に答える
7

これらの拡張機能のどれを使用するかは問題ではありません。好きな方を選んでください。名前の付け方に一貫性を持たせてください。この命名規則で私が知っている唯一の例外は、ファイルをコンパイルすることができなかったWinDDK(または今ですか?)ということです。Linuxでは、それはほとんど問題ではありません。WDK.cc

于 2009-10-09T17:28:26.860 に答える