#include
プリプロセッサ指令:インデックス への移動
構文
#include <header_name> #include "header_name" #include <macro_definition>
Clang 拡張 C++ コンパイラでの #include 構文については、「Clang 拡張 C++ コンパイラ、#include パスとルックアップ」を参照してください。
説明
#include 指令は、指定された他のファイル(インクルード ファイル、ヘッダー ファイル、ヘッダーなど)をソース コードに挿入します。 構文には 3 つの書式があります:
- 1 つ目と 2 つ目の書式は、マクロ展開が試みられないことを示します。つまり、
header_name
ではマクロ識別子は検索されません。header_name
は、拡張子付き(通常はヘッダー ファイルを表す .h)の有効なファイル名でなければなりません。オプションでパス名とパス区切りを付けます。 - 3 つ目の書式は、#include に続く最初の空白以外の文字として、
<
と"
が出現しないことを前提としています。また、マクロ識別子を<header_name>
形式または"header_name"
形式のどちらかを用いた区切り文字付きの有効なヘッダー名に展開する、マクロ定義が存在することも前提としています。
プリプロセッサは #include 行を削除し、概念的には、ソース コードのその場所で対象行をインクルード ファイルのテキスト全体に置換します。 ソース コードそのものは変更されませんが、コンパイラはその拡大されたテキストを "見る" ことになります。 そのため #include の位置が、インクルードしたファイルのすべての識別子のスコープと存続期間に影響を与える可能性があります。
header_name
に明示的なパスを指定した場合は、そのディレクトリだけが検索されます。
<header_name>
形式と "header_name"
形式の違いは、インクルード ファイルを検索するときに用いられる検索アルゴリズムにあります。
構文形式 | 検索アルゴリズム |
---|---|
引用形式 |
|
角かっこ形式 |
|