組み込みファイルのパス名の指定

#include プリプロセッサー・ディレクティブを使用して 1 つのソース・ファイルを別のソース・ファイルに組み込むときには、組み込むファイル名を指定する必要があります。 絶対パス名または相対パス名を使用して、 ファイル名を指定することができます。

相対パス名を使用した組み込みファイルのディレクトリー検索シーケンス

C および C++#include プリプロセッサー・ディレクティブの 2 つのバージョンを定義しています。IBM XL C/C++ は両方をサポートします。#include ディレクティブでは、組み込みファイル名は < > または " " 区切り文字で囲まれます。

区切り文字の選択により、指定された組み込みファイル名の検索に使用される検索パスが決定されます。以下のように、コンパイラーはその組み込みファイルが検出されるまで検索パスのすべてのディレクトリーで組み込みファイルを検索します。

#include の型 ディレクトリーの検索順序
#include <file_name>
  1. コンパイラーはまず、-Idirectory コンパイラー・オプションによって指定された各ユーザー・ディレクトリーで、コマンド行にユーザー・ディレクトリーが指定された順に、file_name を検索します。
  2. C++ のコンパイルの場合、コンパイラーはその後、-qcpp_stdinc および -qgcc_cpp_stdinc コンパイラー・オプションによって指定されたディレクトリーを検索します。
  3. 最後に、コンパイラーは -qc_stdinc および -qgcc_c_stdinc コンパイラー・オプションによって指定されたディレクトリーを検索します。
#include "file_name"
  1. コンパイラーは最初に、現行ソース・ファイルが常駐するディレクトリーで組み込みファイルを検索します。現行ソース・ファイルとは、ディレクティブ #include "file_name" を含むファイルです。
  2. その後コンパイラーは、#include <file_name> に対する前述の検索順序に従って、組み込みファイルを検索します。
注:
  1. file_name は、組み込まれるファイル名を指定し、 必要に応じて、そのファイルへの完全または部分ディレクトリー・パスを含むことができます。
  2. #include ディレクティブの 2 つのバージョンの唯一の違いは、 " " (ユーザー組み込み) バージョンでは、 最初に現行ソース・ファイルの常駐するディレクトリーから検索を開始するということです。 一般に、標準ヘッダー・ファイルは < > (システム組み込み) バージョンを使用して組み込まれ、ユーザーが作成したヘッダー・ファイルは " " (ユーザー組み込み) バージョンを使用して組み込まれます。
  3. -qstdinc および -qidirfirst オプションと一緒に、 -Idirectory オプションを指定することにより、 検索順序を変更することができます。

    該当する場合は、-Idirectory オプションで指定したディレクトリーと、 現行のソース・ファイル・ディレクトリーのみを検索するため、 -qnostdinc オプションを使用します。

    -qidirfirst オプションを #include "file_name" ディレクティブと共に使用すると、-Idirectory オプションを使用して指定されたディレクトリーを他のディレクトリーを検索する前に検索します。

    ディレクトリー検索パスを指定するには、-I オプションを使用します。

関連情報