インクルードは、それがどのように機能するかを理解すれば、非常に簡単です。
ファイルを含めるいくつかの異なる方法を見てみましょう。
#include "FlexLexer.h"
引用符は、コンパイル中のファイルと同じフォルダーでファイル FlexLexer.h を探すようにコンパイラーに指示します。それだけです。他のどこにも見えません。
引用符を括弧に変更すると、次のようになります。
#include <FlexLexer.h>
これは、最初に同じフォルダーで FlexLexer.h を探すようにコンパイラーに指示しますが、見つからない場合は、インクルード パスのリストを調べてそこでも探します。
VisualStudio を使用していると仮定すると、インクルード パスのシステム リスト ([ツール] > [オプション] > [プロジェクトとソリューション] > [VC++ ディレクトリ] を参照) とインクルード パスのプロジェクト リスト ([ソリューション エクスプローラー] でプロジェクトを右クリックし、[プロパティ] > [VC++ ディレクトリ] を参照) の両方があります。 )。これらのリストは両方ともトラバースされます。
最後に、サブディレクトリ修飾子をインクルードに追加することもできます。
#include "Win\FlexLexer.h"
また
#include <Win\FlexLexer.h>
ご想像のとおり、どちらの例でも現在のディレクトリの下でパスが検索され、後の例ではインクルード パス リストの下でもパスが検索されます。とにかく、ファイルが最初に見つかったときに検索が停止し、コンパイラがそれを使用します。したがって、ヘッダーがある場合は、異なるライブラリで名前が重複することに注意してください!