#includeの囲み文字による違い

 Cのプログラムを見ると、#include の後の文字が < >括弧 で囲われているものと、" "ダブルクォーテーションで囲われているものとがあった。この違いについて少し気になったので調べてみた。

違い

#include <hoge.h> と #include "hoge2.h" の違いはなにか。

違いは、ヘッダファイルを探す場所 である。

 

括弧で囲われている場合( #include <hoge.h> )

 パスで指定されているディレクトリからファイルを探す。

ダブルクォーテーションで囲われている場合( #include "hoge2.h" )

 パスで指定されているディレクトに加えて、カレントディレクトリからもファイルを探す。

 

わかったこと

ダブルクォーテーションで囲った場合 ( #include "hoge2.h" ) はパスで指定されているところ以外に、この #include "hoge2.h" を書いているプログラムファイルが置かれているディレクトリからもヘッダファイルを探してくれる。