includeとは?C言語の基本ヘッダファイルとインクルードファイルの話
Sponsored Link
こんにちは。
今日は初心者向けの記事です。
C言語の基本書をとりあえず進めていくと、基本的にプログラムファイルのこの部分
普通の入門書では、
「まぁとりあえずこれはこういうものだと覚えておきましょう」
こういうノリで解説されているんですよね。
ただ、こういうところをうやむやにしていくことが僕はだめなんじゃないかなーと思います。
日本人というのは小さい頃から、「これやれ!あれやれ!」みたいに言われてきて、
「なぜやるのか?」
という視点がどうしても欠如しているんじゃないかなーと思うわけですw
とまぁ、脱線はここまでにしておいて、
ではなぜ「include○○」のようなものが必要なのか?
という話をしていきたいと思います。
ヘッダとインクルードという話
最初に言葉の定義を話しておきます。
メインのプログラム本文ではない部分。
プログラム用語では「ヘッダ」と言います。
勿論飾りでもなんでもなく、必要なものです。
では、例を挙げてみましょう。
#include 〈stdio.h〉
とはどういう意味なのでしょうか?
それを考える前に逆に、この一文が無い場合にプログラムを動かした場合を考えてみましょう。
/*#include 〈stdio.h〉*/
int main() {
printf(“Hello World”);
return 0;
}
⇒実行
これは、どのように動くでしょうか?
・・・・・動きません。
笑
そうなんですよ。
要するに、printfすら動かないんです。
そもそもですよ?
printf(“○○○”)と入力すれば、なぜ画面上に○○○と表示されるのでしょうか?
プログラムするということは、パソコンに命令をするということです。
そもそもプログラムをする以前の問題として、
「printfは、画面上に表示させる命令ですよ」
とパソコンに対して命令しておかなければいけないんです。
勘の良い方はここら辺で気付いた方もいるかもしれません。
#include 〈stdio.h〉
というのは、そういった「プログラムをする以前のプログラムの命令」をまとめて命令していることに等しいのです。
includeというのは、簡単に言えば「持ってきて命令する」という意味です。
stdio.hというのは、 命令内容です。(ヘッダファイルと言います)
大学の物理や数理的な処理をする人など、ちょっと難しい計算などをする方は
#include 〈math.h〉
というヘッダファイルを持ってくることもあるかと思います。
#include 〈stdio.h〉
#include 〈math.h〉
int main() {
メインのプログラム
return 0;
}
こういうのを使うプログラムを書かなければいけないというのは、
「stdio.hだけでは足りないからもっと違う命令も持ってきてパソコンに命令しなければいけない」
という場合ってことですね。
ヘッダファイルはどこから持ってくるのか?
さっきから、includeは「持ってくる」という意味だといいましたが、どこから命令を持ってきているのでしょうか?
それは、パソコンの環境によってまちまちですw
ただ、
C言語を使える環境になっている=ちゃんとインクルードできる環境
ということですから、心配しないでください。
上級者になると、ヘッダファイルを自分で作るということもあるわけです。
このサイトを見ている方は、早くそのレベルに達して欲しいですね。笑
ちなみに、stdio.hなどのヘッダファイルを作っている人は「すごいプログラミングが得意な人」という認識で結構ですw
まとめると、インクルードするということは、
プログラミングをするための基本的な命令を持ってきて、パソコンにプログラミングできる環境を整えますよ
という意味だと思ってもらえれば良いかと思います。
Sponsored Link