ヘッダファイル【header file】インクルードファイル
別名 :include file/.hファイル
概要

C/C++には、ソースコードの指定した位置に外部ファイルの内容を展開する「インクルード」の仕組みが備わっている。ソースコードに「#include <ファイル名>」または「#include "ファイル名"」と記述すると、プリプロセッサがコンパイル前にその位置へファイルの内容を埋め込む。
関数を別ファイルで定義する場合、呼び出し側のソースコードは関数名、引数の型、返り値の型といった情報をあらかじめ把握している必要がある。ヘッダファイルはこうした宣言のみを記述したファイルであり、インクルードすることでコンパイラとリンカに必要な情報を与える。
ライブラリ関数の場合、実装がオブジェクトコードの形でのみ提供され、ソースコードが開示されないことがある。その場合でも、対応するヘッダファイルをインクルードすれば、コンパイラが関数呼び出しの整合性を検証でき、リンク時にリンカがオブジェクトコード内の実装と対応付けを行う。「stdio.h」「stdlib.h」「string.h」などは標準Cライブラリが提供するヘッダファイルの例である。
標準には関数の宣言のほか、構造体やクラスの定義、マクロ定義、定数宣言なども記述される。同じ標準が複数箇所からインクルードされると宣言が重複してコンパイルエラーになるため、条件付きコンパイルのディレクティブを使ったインクルードガードが設けられるのが一般的である。C++20以降は「モジュール」(module)という仕組みが導入され、ヘッダファイルに代わる依存管理の手段として利用できるようになっている。
(2026.6.24更新)