山かっこの違いは何ですか< >
二重引用符" "
C + +のヘッダファイルを含めながら?
どのファイルがインクルードされることになっているかを意味します。例えば:#include <QPushButton>
そしてどのファイルをインクルードするかは、例えば:#include "MyFile.h"
???
コンパイラに依存します。とは言うものの、一般的には"
現在の作業ディレクトリ内のヘッダをシステムヘッダよりも優先します。<>
通常はシステムヘッダに使用されます。から仕様へ(セクション6.10.2):
次の形式の前処理指令
# include <h-char-sequence> new-line
実装定義の一連の場所を検索し、指定された順序で一意に識別されるヘッダーを検索します。
<
そして>
そして、そのディレクティブをヘッダーの内容全体で置き換えます。場所の指定方法や識別されたヘッダーの実装方法は実装によって異なります。次の形式の前処理指令
# include "q-char-sequence" new-line
指定されたシーケンスによって識別されるソースファイルの内容全体でそのディレクティブを置き換えます。
"
区切り文字指定されたソースファイルは、実装定義の方法で検索されます。この検索がサポートされていない場合、または検索が失敗した場合、ディレクティブは読み取りのように再処理されます。# include <h-char-sequence> new-line
同一の含まれているシーケンス(を含む)
>
元の文字(ある場合) 指令。
だから最もコンパイラ、""
最初にあなたのローカルディレクトリをチェックし、そしてそれがマッチを見つけられないならそれからシステムパスをチェックすることに移ります。を使う<>
システムヘッダで検索を開始します。
山括弧を使用すると、コンパイラはインクルードパスリスト内のファイルを検索します。二重引用符を使用すると、まず現在のディレクトリ(つまり、コンパイルされているモジュールがあるディレクトリ)が検索され、それからインクルードパスリストが検索されます。
したがって、慣例により、標準的なインクルードには山括弧を使用し、その他のものには二重引用符を使用します。これにより、標準ヘッダーと同じ名前のローカルヘッダーがある(推奨されない)場合は、それぞれ正しいヘッダーが選択されます。