Oracle® Solaris Studio 12.4: C ユーザーガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

2.16 インクルードファイルを指定する方法

C コンパイルシステムで提供される標準ヘッダーファイルをインクルードするには、次のフォーマットを使用します。

#include <stdio.h>

角括弧 (<>) によって、プリプロセッサは システム上のヘッダーファイルの標準の場所にあるヘッダーファイルを検索し、 これは通常、/usr/include ディレクトリです。

ユーザーが自分のディレクトリに格納したヘッダーファイルの場合は、次のように書式が異なります。

#include "header.h"

書式 #include "foo.h" (二重引用符を使用) の文に対し、コンパイラは、次の順番でインクルードファイルを検索します。

  1. 現在のディレクトリ (つまり、「インクルード」するファイルを含むディレクトリ)

  2. -I オプションで命名されたディレクトリ

  3. /usr/include ディレクトリ

ヘッダーファイルがインクルード元のソースファイルと同じディレクトリにない場合は、-I コンパイラオプションを使用して、それが格納されているディレクトリのパスを指定してください。たとえば、ソースファイル mycode.c の中で stdio.hheader.h をインクルードしたとします。

#include <stdio.h>
#include "header.h"

さらに、header.h../defs ディレクトリに格納されているとします。このとき、次のコマンドを使用できます:

% cc  –I../defs  mycode.c

プリプロセッサに対して、最初に mycode.c を含むディレクトリ、次に ../defs ディレクトリ、最後が標準の場所で、header.h を検索するように指示されます。stdio.h については最初が ../defs、次が標準の場所となります。相違点は、現ディレクトリを検索するのは名前を二重引用符で囲んだヘッダーファイルを検索する場合だけであることです。

-I オプションは 1 つの cc コマンド行の中で複数回指定することができます。指定したディレクトリをプリプロセッサが検索する順序は、コマンド行での指定順序と同じです。同一のコマンド行で cc に複数のオプションを指定できます。

% cc– o prog– I../defs mycode.c