ファイルのインクルード (#include)

プリプロセッサーの 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

関連参照

IBM Copyright 2003