ヘッダファイル
インクルードファイルと似たようなものだよ
ソースコードの部品だよ
C言語で よく出てくる表現だよ
簡単に書くよ
ヘッダファイル(英:header file)とは
意味合い的には「インクルードファイル
(ソースコードの一部を抜き出して別に分けたファイル)」と同じだけど、一般的なインクルードファイルより縛りがキツかったり注意すべき点が多かったりするんだよなぁ、のこと。
個人的には
C言語版インクルードファイル
だと思っています。
インクルードファイルは
人間語で書いたプログラムの元ネタ(ソースコード)の部品
です。
もう少し具体的に書くと
ソースコードの一部を抜き出して別に分けたファイル
であり
主となるソースファイル
(人間語で書かれた、プログラムの元ネタファイル)に取り込まれて力を発揮するソースファイル
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・ソースコード
・ソースファイル
・インクルードファイル
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
ソースコードは「人間語で書いたプログラムの元ネタ」です。
プログラムを作って動かすまでの一般的な流れは
1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する
です。
コンピュータさんは人間語が分かりません。
人間様はコンピュータさんの言葉が分かりません。
プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。
次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。
コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。
かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。
この話で登場した
人間語で書いたプログラムの元ネタ
を「ソースコード」と言います。
ソースファイルは「プログラムの元ネタが書かれているファイル」です。
難しく考える必要は ありません。
ソースコードが書いてあるファイルです。
こいつをコンピュータさんが分かる言葉に翻訳すると実際のプログラムになります。
インクルードファイルは「ソースコードの一部を抜き出して別に分けたファイル」です。
プログラムの元ネタは、すべての内容を1つのファイルにまとめて書けます。
ソースファイルを1つだけ作り、すべての処理をその中に書くことも できるのです。
ですが、それなりに複雑なプログラムを作るときは、それだと不便です。
ずらずらっと長くなりますからね。
読むのも大変ですし、直すのも大変です。
テストするのも大変でしょう。
そこで、ある程度以上の規模のプログラムを作るときは複数のファイルに分けて作ります。
分けて作ったファイルは、コンピュータさんが分かる言葉に翻訳するときに合体させます。
主となるファイルに その他の部品ファイルを装着することで、1つのソースファイルにするのです。
この話における
主となるソースファイルに装着される部品ファイル
がインクルードファイルです。
「インクルード」には「含めるよ」的な意味があります。
主となるファイルに含めるファイルだからインクルードファイルです。
以上を踏まえて
「インクルードファイルと意味は同じなんだけど微妙にニュアンスが違う、いや、でも、やっぱり同じかな、いや、でも違う気がするんだよなぁ」なファイル
が「ヘッダファイル」です。
「ヘッダファイル」という呼び名は、主にC言語系のプログラミング言語(CとかC++とか)で出てきます。
実際のところ、インクルードファイルとヘッダファイルは、同じ物として扱われている場合が ほとんどです。
「インクルードファイル(ヘッダファイル)」のような書き方も よく見かけます。
そして、それが正しいのでしょう。
ですが、個人的には印象が違います。
インクルードファイルは、他のソースファイルから取り込まれるソースファイル全般を指す用語です。
インクルードファイルには定数や宣言だけでなく実際の処理を書けますし、必要に応じて書きます。
それに対して、ヘッダファイルの中には、処理自体は(その気になれば書けるでしょうが)書きません。
定数や宣言などを書くためのファイルです。
あくまで私個人としてですが「ヘッダファイル」は「C言語系(CとかC++とか)の仕様に沿ったインクルードファイル」と解釈しています。
それ以外、一般的なプログラミング言語における呼び名は「インクルードファイル」との理解です。
一言でまとめるよ
まぁ「ヘッダファイル」って単語が出てきたら「(主にC言語系における)インクルードファイル
(ソースコードの一部を抜き出して別に分けたファイル)なんだな~」と お考えください。
おまけ
■訳してみるよ
「header(ヘッダ)」はIT用語の「ヘッダ」です。
「頭」とかを意味する「head(ヘッド)」という単語に「~する人」とか「~するもの」的な意味になる接尾辞「er」を付けた単語です……多分。
「file(ファイル)」はカタカナで「ファイル」で分かりますかね。
何となく くっつけると
ヘッダのファイル
となります。
……そのまんまになっちゃった。
ゴメンね。
■検索してみる?






