[解決済み] .c vs .cc vs .cpp vs .hpp vs .h vs .cxx [重複]の場合
質問
重複の可能性があります。
クラス定義のための*.hまたは*.hpp
C++コードの正しいファイル拡張子は?
昔はそう思っていたのですが。
-
.h
ファイルは、CやC++のヘッダーファイルで、通常は宣言だけが含まれています。 -
.c
ファイルはC言語のソースコードです。 -
.cpp
ファイルは、C++のソースコードです(Cのソースコードであることもあります)。
のようなファイルであれば
.hpp
,
.cc
および
.cxx
が出てきて、すっかり混乱してしまいました...これらの違いは何ですか?新しいものはいつ使うのでしょうか?
解決方法は?
歴史的に見ると、C++で最初に使われた拡張機能は
.c
と
.h
これは、C言語の場合と全く同じで、実用上問題がありました。
.c
このため、ビルドシステムがC++とCのファイルを簡単に区別することができませんでした。
C++が開発されたUnixは、大文字と小文字を区別するファイルシステムです。 そのため、あるものは
.C
をC++のファイルとして使用します。 その他は
.c++
,
.cc
と
.cxx
.
.C
と
.c++
は、他のファイルシステムでは使えないという問題があり、すぐに使われなくなりました。DOSとWindowsのC++コンパイラは、この問題を解決するために
.cpp
その中には、設定が不可能ではないにしても、その選択を難しくしているものもあります。 移植性を考慮すると、MS-Windows以外でもその選択が最も一般的でした。
ヘッダーには、対応する
.H
,
.h++
,
.hh
,
.hxx
と
.hpp
. しかし、メインファイルとは異なり
.h
C++では、ヘッダがCのコンテキストに含まれるかどうかがわからないという欠点がありますが、今日までよく使われる選択肢です。標準的なヘッダには、現在ではまったく拡張子がありません。
さらに、一部では
.ii
,
.ixx
,
.ipp
,
.inl
はインライン定義を提供するヘッダ、そして
.txx
,
.tpp
と
.tpl
をテンプレート定義に使用します。 これらは定義を提供するヘッダに含まれるか、それらが必要とされるコンテキストで手動で行われます。
コンパイラやツールは通常、どのような拡張子が使われているかを気にしませんが、C++に関連する拡張子を使えば、使用されている言語を正しく認識できるように設定する方法を追跡する必要がなくなります。
2017年編集:Visual Studioの実験的モジュールサポートが認識すること
.ixx
をモジュールインターフェイスのデフォルトの拡張子として認識し、clang++は
.c++m
,
.cppm
と
.cxxm
を同じ目的で使用することができます。
関連
-
[解決済み] テスト
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] *.h または *.hpp をクラス定義に使用します。
-
[解決済み】C++の定義をヘッダーファイルに配置するのは良い習慣ですか?
-
[解決済み】G++を使用して複数の.cppと.hファイルをコンパイルする場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] *.h または *.hpp をクラス定義に使用します。
-
[解決済み] C++コードのファイル拡張子は?.ccと.cppの違いは何ですか[closed]。