次の方法で共有


#include ディレクティブ (C/C++)

#include のディレクティブはのコンテンツがディレクティブが表示されるまでは作成元プログラムで示されるようにプリプロセッサは指定されたファイルのコンテンツを処理するように指示します。

#include  "path-spec"
#include  <path-spec>

解説

定数整理しマクロ定義はファイルをインクルードし次にソース ファイルに次の定義を追加するには #include のディレクティブを使用します。ファイルが外部変数と複合データ型の宣言を組み込むためにも便利含めます。一度だけがこの目的のために作成されたインクルード ファイルの種類を定義し名前を付ける必要があります。

パス指定 が必要に応じてディレクトリの指定が付いたファイル名です。ファイル名が既存のファイル名を付ける必要があります。 パス固有 の構文はプログラムがコンパイルされるオペレーティング システムによって異なります。

/clr. でコンパイルする C/C++ アプリケーションでアセンブリを参照する方法については#using を参照してください。

構文形式では両方を指定するのコンテンツにはそのディレクティブに置き換えますのインクルード ファイルが発生します。2 種類のフォームとの違いはパスが不完全に指定するとプリプロセッサがヘッダー ファイルを検索する順序です。次の表は2 種類の構文形式の違いを示しています :

構文形式

動作

引用符フォーム

プリプロセッサは次の順序でをインクルード ファイルを検索します :

  1. #include のステートメントを含むファイルと同じディレクトリ。

  2. 以前に開いたディレクトリに逆順にファイルを追加します。検索で最後に開かれた開始し最初に開いたインクルード ファイルのディレクトリに従ってインクルード ファイルのディレクトリから。

  3. 各 /I コンパイラ オプションで指定されたパス。

  4. INCLUDE 環境変数で指定されたパス。

山かっこのフォーム

プリプロセッサは次の順序でをインクルード ファイルを検索します :

  1. 各 /I コンパイラ オプションで指定されたパス。

  2. には環境変数で指定されるパスに沿ってコマンド ラインからコンパイルする場合は。

プリプロセッサは指定された名前のファイルが見つかるとすぐに検索を停止します。二重引用符 () 「「間のインクルード ファイルの完全パスで明確な仕様を指定するとパスの指定は無視されプリプロセッサはディレクトリを検索します。

二重引用符で囲まれたファイル名が不完全なパスを指定した場合プリプロセッサは「」の親ファイル ディレクトリを検索します。親ファイルを含むファイル #include のディレクティブです。たとえばfile1 という名前のファイル内の file2 という名前のファイルがある場合は親 file1 ファイルです。

ファイル」を入れ子にできますが含まれています ; 「 つまり#include のディレクティブは #include の別のディレクティブで指定されたファイルで使用できます。たとえばfile2 は上記の file3 を含めることができます。この場合file1 はfile2 の親に移動 file3 「」です。

含む場合ファイルは入れ子になっていて親ファイルのディレクトリからコマンド ラインからコンパイルするとディレクトリの検索が開始され移動しファイル ディレクトリを反復次に進みます。したがって検索が格納されているディレクトリに対する現在のソースに処理される開始します。ファイルが見つからなかった場合は/I コンパイラ オプションで指定されたディレクトリに移動します。最後にINCLUDE 環境変数で指定されたディレクトリが検索されます。

開発環境ではINCLUDE 環境変数は無視されます。ディレクトリは検索設定するにはファイル (この情報はLIB 環境変数に適用されます)。は" " VC++ ディレクトリプロジェクト[オプション] ダイアログ ボックス が含まれています。

次の例では山かっこを使用してファイルをインクルードします :

#include <stdio.h>

この例では作成元のプログラムに STDIO.H というファイルに内容を追加します。山かっことSTDIO.H をプリプロセッサで指定されたディレクトリが /I コンパイラ オプションで指定されたディレクトリを検索した後に環境変数で検索します。

引用されたフォームを使用して次の例に示します。ファイルの例 :

#include "defs.h"

この例では作成元のプログラムに DEFS.H で指定されたファイルのコンテンツを追加します。二重引用符はプリプロセッサがあるディレクトリを親のソース ファイルを最初に検索されます。

の入れ子はファイルを 10 までのレベルを続行できますがあります。入れ子になった #include が処理される場合プリプロセッサは元のソース ファイルにインクルード ファイルを囲むことを挿入します。

Microsoft 固有の仕様 →

includable ソース ファイルを検索するにはプリプロセッサは最初に /I コンパイラ オプションで指定されたディレクトリを検索します。/I オプションはなく失敗するとプリプロセッサによって検索に INCLUDE 環境変数が含まれます。山かっこのファイルを使用します。/I の INCLUDE 環境変数とコンパイラ オプションはセミコロン (;) で区切られた複数のパスを含めることができます。複数のディレクトリが /I オプションの一部としてまたは INCLUDE 環境変数内にある場合はプリプロセッサが表示される順序で検索します。

たとえばコマンド

CL /ID:\MSVC\INCLUDE MYPROG.C

プリプロセッサが含まれます STDIO.H. などのファイルを D:\MSVC\INCLUDE ディレクトリを検索します。コマンド

SET INCLUDE=D:\MSVC\INCLUDE
CL MYPROG.C

同じ結果になります。検索の設定が両方とも失敗した場合致命的なコンパイラ エラーが生成されます。

ファイル名にコロン (たとえばF:\MSVC\SPECIAL\INCL\TEST.H) を含むパスを指定したインクルード ファイルに対して十分に指定されているとプリプロセッサはパスが表示されます。

に #include  パス指定 として指定されたファイルを格納するディレクトリに移動し親ファイルのディレクトリから始まりその後に移動するすべてのファイルのディレクトリに移動します。したがって検索が格納されているディレクトリに対する処理される #include のディレクティブを含むソース ファイルを開始します。移動のファイルが存在しない場合はファイルがない場合検索対象はファイル名が山かっこで囲まれているように従います。

終了 Microsoft 固有の仕様→

参照

関連項目

プリプロセッサ ディレクティブ