.c vs .cc vs. .cpp vs .hpp vs .h vs .cxx

user541686

重複の可能性:
クラス定義の* .hまたは* .hpp
正しいC ++コードファイル拡張子?.ccと.cpp

私はそれが以前はそれであったと思っていました:

  • .h ファイルはCおよびC ++のヘッダーファイルであり、通常は宣言のみが含まれます。
  • .c ファイルはCソースコードです。
  • .cpp ファイルはC ++ソースコードです(Cソースコードにすることもできます)。

その後、同様にファイル.hpp.cc、と.cxx一緒に来て、私は完全に混乱してしまった...それらの間の差(複数)は何ですか?「新しい」ものはいつ使用しますか?

Aプログラム

歴史的に、C ++のために使用される最初の拡張であった.c.h、特に、正確C.これは実際的な問題を引き起こしたためのように、.cビルドシステムを許可しなかった簡単に分化C ++とCファイルに。

C ++が開発されたUnixには、大文字と小文字が区別されるファイルシステムがあります。その.Cため、C ++ファイルに使用されるものもあります。他には使用され.c++.ccそして.cxx.Cまた.c++、他のファイルシステムでは利用できず、すぐに使用できなくなるという問題があります。DOSおよびWindowsC ++コンパイラーはを使用する傾向があり.cpp、それらのいくつかは、構成が不可能ではないにしても、選択を困難にします。移植性を考慮して、MS-Windowsの外部でも、その選択が最も一般的になりました。

ヘッダは、対応する使用している.H.h++.hh.hxx.hppただし、メインファイルとは異なり、.hヘッダーをCコンテキストに含めることができるかどうかを知ることができないという欠点はありますが、今日でもC ++で人気のある選択肢です。現在、標準ヘッダーには拡張子がまったくありません。

さらに、いくつかは、使用している.ii.ixx.ipp.inlヘッダはインライン定義を提供するためと.txx.tppそして.tplテンプレート定義のために。それらは、定義を提供するヘッダーに含まれるか、必要なコンテキストで手動で含まれます。

コンパイラーとツールは通常、使用される拡張機能を気にしませんが、C ++に関連付けられている拡張機能を使用すると、使用される言語を正しく認識するように構成する方法を追跡する必要がなくなります。

2017編集:Visual Studioの実験用のモジュールのサポートが認識.ixx打ち鳴らすが++認識され、モジュールインターフェイスのデフォルトの拡張子として.c++m.cppmそして.cxxm同じ目的のために。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事