C++ でヘッダー ファイルをインクルードする際の山括弧 < > と二重引用符 " " の違いは何ですか? [重複] 質問する

C++ でヘッダー ファイルをインクルードする際の山括弧 < > と二重引用符

重複の可能性あり:
#include <filename> と #include “filename” の違いは何ですか?

C++ でヘッダー ファイルをインクルードする場合、山括弧< >と二重引用符の違いは何ですか?" "

つまり、たとえば: を使用して含める必要があるファイルはどれで#include <QPushButton>、たとえば: を使用して含める必要があるファイルはどれ#include "MyFile.h"ですか?

ベストアンサー1

これはコンパイラに依存します。とはいえ、一般的には を使用すると、"現在の作業ディレクトリのヘッダーがシステム ヘッダーよりも優先されます。<>通常はシステム ヘッダーに使用されます。仕様 (セクション 6.10.2) から:

次の形式の前処理指令

  # include <h-char-sequence> new-line

は、実装定義の場所のシーケンスで、<>区切り文字の間の指定されたシーケンスによって一意に識別されるヘッダーを検索し、そのディレクティブをヘッダーの内容全体で置き換えます。場所の指定方法やヘッダーの識別方法は実装定義です。

次の形式の前処理指令

  # include "q-char-sequence" new-line

指定されたシーケンスで指定されたソースファイルの内容全体をその"ディレクティブに置き換えます。指定されたソースファイルは、実装定義の方法で検索されます。この検索がサポートされていない場合、または検索に失敗した場合、ディレクティブは次のように読み取られたかのように再処理されます。

  # include <h-char-sequence> new-line

>元のディレクティブに含まれるシーケンス (文字がある場合はそれを含む) と同一です。

したがって、ほとんどのコンパイラでは、""最初に を使用するとローカル ディレクトリがチェックされ、一致するものが見つからない場合はシステム パスのチェックに進みます。 を使用すると、<>システム ヘッダーから検索が開始されます。

おすすめ記事