「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ヘッダファイル

pointこの用語のポイント

pointインクルードファイルと似たようなものだよ

pointソースコードの部品だよ

pointC言語で よく出てくる表現だよ

スポンサーリンク

簡単に書くよ

ヘッダファイル(英:header file)とは

意味合い的には「インクルードファイル(ソースコードの一部を抜き出して別に分けたファイル)」と同じだけど、一般的なインクルードファイルより縛りがキツかったり注意すべき点が多かったりするんだよなぁ、のこと。
個人的には

C言語版インクルードファイル
だと思っています。

インクルードファイルは

人間語で書いたプログラムの元ネタ(ソースコード)の部品
です。
もう少し具体的に書くと

ソースコードの一部を抜き出して別に分けたファイル
であり

主となるソースファイル(人間語で書かれた、プログラムの元ネタファイル)に取り込まれて力を発揮するソースファイル
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

ソースコード
ソースファイル
インクルードファイル


について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

ソースコードは「人間語で書いたプログラムの元ネタ」です。

ヘッダファイル

プログラムを作って動かすまでの一般的な流れは

1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する


です。

ヘッダファイル2

コンピュータさんは人間語が分かりません。

ヘッダファイル3

人間様はコンピュータさんの言葉が分かりません。

ヘッダファイル4

プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。

ヘッダファイル5

次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。

ヘッダファイル6

コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。

ヘッダファイル7

かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。

この話で登場した

人間語で書いたプログラムの元ネタ

を「ソースコード」と言います。

ヘッダファイル8

ソースファイルは「プログラムの元ネタが書かれているファイル」です。
難しく考える必要は ありません。
ソースコードが書いてあるファイルです。
こいつをコンピュータさんが分かる言葉に翻訳すると実際のプログラムになります。

ヘッダファイル9

インクルードファイルは「ソースコードの一部を抜き出して別に分けたファイル」です。

ヘッダファイル10

プログラムの元ネタは、すべての内容を1つのファイルにまとめて書けます。
ソースファイルを1つだけ作り、すべての処理をその中に書くことも できるのです。

ヘッダファイル11

ですが、それなりに複雑なプログラムを作るときは、それだと不便です。
ずらずらっと長くなりますからね。
読むのも大変ですし、直すのも大変です。
テストするのも大変でしょう。

そこで、ある程度以上の規模のプログラムを作るときは複数のファイルに分けて作ります。

ヘッダファイル12

分けて作ったファイルは、コンピュータさんが分かる言葉に翻訳するときに合体させます。
主となるファイルに その他の部品ファイルを装着することで、1つのソースファイルにするのです。

ヘッダファイル13

この話における

主となるソースファイルに装着される部品ファイル

がインクルードファイルです。

ヘッダファイル14

インクルード」には「含めるよ」的な意味があります。
主となるファイルに含めるファイルだからインクルードファイルです。

以上を踏まえて

「インクルードファイルと意味は同じなんだけど微妙にニュアンスが違う、いや、でも、やっぱり同じかな、いや、でも違う気がするんだよなぁ」なファイル

が「ヘッダファイル」です。

ヘッダファイル15

「ヘッダファイル」という呼び名は、主にC言語系のプログラミング言語(CとかC++とか)で出てきます。

実際のところ、インクルードファイルとヘッダファイルは、同じ物として扱われている場合が ほとんどです。
「インクルードファイル(ヘッダファイル)」のような書き方も よく見かけます。
そして、それが正しいのでしょう。

ですが、個人的には印象が違います。

インクルードファイルは、他のソースファイルから取り込まれるソースファイル全般を指す用語です。
インクルードファイルには定数や宣言だけでなく実際の処理を書けますし、必要に応じて書きます。

それに対して、ヘッダファイルの中には、処理自体は(その気になれば書けるでしょうが)書きません。
定数や宣言などを書くためのファイルです。

あくまで私個人としてですが「ヘッダファイル」は「C言語系(CとかC++とか)の仕様に沿ったインクルードファイル」と解釈しています。
それ以外、一般的なプログラミング言語における呼び名は「インクルードファイル」との理解です。


image piyo2

一言でまとめるよ

まぁ「ヘッダファイル」って単語が出てきたら「(主にC言語系における)インクルードファイル(ソースコードの一部を抜き出して別に分けたファイル)なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像021
書籍画像066

おまけ

■訳してみるよ

「header(ヘッダ)」はIT用語の「ヘッダ」です。
「頭」とかを意味する「head(ヘッド)」という単語に「~する人」とか「~するもの」的な意味になる接尾辞「er」を付けた単語です……多分。
「file(ファイル)」はカタカナで「ファイル」で分かりますかね。
何となく くっつけると

ヘッダのファイル

となります。

……そのまんまになっちゃった。
ゴメンね。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
つくって、壊して、直して学ぶ Git&GitHub 入門
7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性