1. ホーム
  2. c++

[解決済み】C/C++のインクルードヘッダーファイルの順番

2022-03-25 15:19:34

質問

インクルードファイルはどのような順番で指定すべきでしょうか。つまり、あるヘッダーを別のヘッダーより先にインクルードする理由は何でしょうか?

例えば、システムファイル、STL、Boostはローカルインクルードファイルの前か後か?

どのように解決するのですか?

コンパイルさえできれば、推奨される順序はないと思います 困るのは、あるヘッダが他のヘッダを先にインクルードすることを要求する場合です...。それはヘッダー自体の問題であって、インクルードの順序の問題ではありません。

個人的な好みとしては、ローカルからグローバルへ、各サブセクションをアルファベット順に並べるのがいいと思います、つまり。

  1. このcppファイルに対応するhファイル(該当する場合)
  2. 同じコンポーネントのヘッダーを表示します。
  3. 他のコンポーネントからのヘッダ。
  4. システムヘッダ。

1.の根拠は、(cppが存在する)各ヘッダーを証明する必要があるからです。 #include 前提条件なし(terminus technicus: header is "self-contained")でd。そして、残りはそこから論理的に流れていくようです。