インクルードファイル (include file)とは
ソースコードの部品。
もう少しきちんと書くと
主となるソースファイルに取り込まれて力を発揮するソースファイル
であり
プログラミングにおいて、ソースコードの一部を抜き出して別に分けたファイルのこと
です。
詳しく書くよ
まずは予備知識からいきましょう。
プログラムを作るときには、まず人間語で書いたプログラムの元ネタを用意します。
次に、元ネタをコンピュータさんが分かる言葉に翻訳します。
コンピュータさんが分かる言葉に翻訳された元ネタが、実際に動くプログラムです。
人間語で書いたプログラムの元ネタは「ソースコード」や「ソースファイル」と言います。
もう少し正確に説明すると、ファイルの中に書いてある内容が「ソースコード」です。
ソースコードが書いてあるファイルが「ソースファイル」です。
元ネタをコンピュータさんが分かる言葉に翻訳する作業は「コンパイル」と言います。
さて、ここでプログラムの元ネタファイル(ソースファイル)に注目してください。
プログラムの元ネタは、すべての内容を1つのファイルにまとめて書くことができます。
ですが、それなりに複雑なプログラムを作る場合は、それだと不便です。
ずらずらずらっと長くなりますからね。
読むのも大変、直すのも大変、テストするのも大変でしょう。
そこで、ある程度以上の規模のプログラムでは、ソースファイルを分けて作ります。
「主となる処理はこのファイルに書こう」「みんなで使う部品はこっちのファイルに入れよう」「一部の機能だけで使う部品はこのファイルに書こう」といった調子で、処理の役割や作る人の気分によって、ファイルを分けるのです。
分けて作ったソースファイルは、コンパイルするときに合体させます。
具体的には、主となるファイルに対して、その他の部品ファイルを装着します。
あとは、合体したソースコードをコンパイルすれば、実際のプログラムに変身します。
ここまでの話から
1.ソースファイルは複数のファイルに分けて作れる
2.分けて作ったソースファイルは、コンパイルするときに合体する
3.主となるファイルに部品ファイルが装着される形で合体する
というのを覚えてください。
特に、ポイントは
3.主となるファイルに部品ファイルが装着される形で合体する
です。
ソースコード分けて作る場合、主となるファイルに「部品ファイル」が装着されます。
「部品ファイル」が装着されるのです。
くどいですが、もう一度書いておきます。
「部品ファイル」が装着されます。
もう分かりましたよね。
主となるソースファイルに装着される、部品ファイルが「インクルードファイル」です。
「インクルード」には「含めるよ」的な意味があります。
主となるファイルに「含める」ファイルだから、インクルードファイルです。
プログラム関係で合体するといえば「DLL」がありましたね。
DLLは「プログラムの部品」です。
単体では何もできませんが、他のプログラムさんに呼ばれてお仕事をします。
インクルードファイルは、それのソースファイル版のイメージです。
ちょっとニュアンスが違いますが「ソースコードの部品」と言っても良いかもしれません。
単体では何もできませんが、他のソースファイルさんに呼ばれてお仕事をします。
インクルードファイルを用意する主な目的は
1.ソースコードを整理するため
2.他のところで再利用するため
です。
他にも「複数人で手分けして作業しやすいから」とかメリットはあるでしょうけどね。
私がパッと思いつくのは、上の2つです。
例えば、機能毎にファイルを分けておけば「あの機能を修正したいときは、このファイルを見ればいいのか」と、すぐに分かります。
1つのファイルの中身も、全部まとめて書いた場合と比べて、構造は単純で量も少なくなるでしょう。
中身がごちゃごちゃしているよりは、スッキリしている方が助かりますよね。
ソースファイルを分けることによって、ある程度は強制的に整理されます。
また、インクルードファイルは、それ自体が1つのファイルです。
誰のものと決まっているわけではありません。
例えば、ピヨ太プログラムで使うピヨインクルードファイルを作ったとしましょう。
ピヨインクルードファイルは、それ自体が1つのファイルです。
使えるのであれば、ピヨ子プログラムを作る際に、そのまま使っても構いません。
このように、ファイルを分けて作っておくことで、他のプログラムを作るときに再利用しやすくなります。
実際問題、インクルードファイルを一切使わなくてもプログラミングはできます。
1つのソースファイルに全部の処理を書けばいいだけです。
ですが、中身がゴチャゴチャしているよりはスッキリしている方が良いでしょう。
先人が作った部品を再利用して楽がしたいです。
そんな理由から、インクルードファイルを作ったり使ったりします。
一言でまとめるよ
まぁ「インクルードファイル」って単語が出てきたら「ソースコードの部品なんだな~」と、お考えください。