プリプロセッサーの include ディレクティブ を使用すると、 プリプロセッサーは、そのディレクティブを指定されたファイルの内容に置き換えます。
プリプロセッサーの #include ディレクティブの形式は、次のとおりです。
>>-#--include--+-"--file_name--"---+--------------------------->< +-<--file_name-->---+ +-<--header_name-->-+ '-ID----------------'
C および C++ のすべてのインプリメンテーションにおいて、プリプロセッサーは #include ディレクティブに含まれているマクロを解決します。 マクロ置き換え後に結果として得られるトークン・シーケンスは、二重引用符または文字 < および > で囲まれたファイル名で構成されます。
次に例を示します。
#define MONTH <july.h> #include MONTH
例えば次のように、ファイル名が二重引用符で囲まれている場合、
#include "payroll.h"
プリプロセッサーは、これをユーザー定義のファイルとして扱い、 プリプロセッサーが定義した方法でファイルを検索します。
例えば次のように、ファイル名が不等号括弧で囲まれている場合、
#include <stdio.h>
プリプロセッサーは、これをシステム定義のファイルとして扱い、 プリプロセッサーが定義した方法でファイルを検索します。
改行および > の文字は、 < と > で区切られたファイル名の中に入れることができません。 改行および " (二重引用符) の文字は、 " と " で区切られたファイル名の中に入れることはできません。 > は入れることができます。
いくつかのファイルによって使用される宣言を 1 つのファイルの中に入れ、#include を 用いて、それらを使用する各ファイルに含めることができます。 例えば、以下のファイル defs.h には、いくつかの定義と、宣言の追加ファイルの インクルードが 1 つ入っています。
/* defs.h */ #define TRUE 1 #define FALSE 0 #define BUFFERSIZE 512 #define MAX_ROW 66 #define MAX_COLUMN 80 int hour; int min; int sec; #include "mydefs.h"
以下のディレクティブを用いて、defs.h 内にある定義を組み込むことができます。
#include "defs.h"
以下の例では、#define は、いくつかのプリプロセッサー・マクロを結合して C 標準入出力ヘッダー・ファイルを表すマクロを定義しています。 #include により、ヘッダー・ファイルをプログラム で使用できるようになります。
#define C_IO_HEADER <stdio.h> /* The following is equivalent to: * #include <stdio.h> */ #include C_IO_HEADER
関連参照