今まで「おまじない」ですませてきた #include について今回は話していきます。少し短いですが、たまにはいいでしょうね。
では、今回の要点です。
では、いってみましょう。
変数や関数は宣言しなければ使えないと言ってきました。ですが、cout や strlen の宣言を書いた覚えはありません。それにも関わらずこれらを使うことができました。これはどういうことなのでしょうか。
実は、これらの宣言は別のファイル内で行われているのです。それが、iostream.h や、string.h なのです。
そして、そのファイルを埋め込んで、2つ以上のファイルを合成する命令が #include なのです。そして、この作業を「インクルードする」といいます。include というのは「含む」という意味です。
この説明だけでは少しわかりづらいでしょう。なので、ここで例を示してみます。
プログラム1 | プログラム2 | プログラム1+2 |
---|---|---|
// Include1.h void Hello(); |
// Include1.cpp #include <iostream.h> #include "Include1.h" int main() { Hello(); return 0; } void Hello() { cout << "やぁ、こんちは。" << endl; return 0; } |
// Include1.cpp #include <iostream.h> // Include1.h void Hello(); int main() { Hello(); return 0; } void Hello() { cout << "やぁ、こんちは。" << endl; return 0; } |
関数のプロトタイプだけを Include1.h というファイルに分けて書きました。そして、Include1.cpp に
#include "Include1.h"
と書き、このファイルを取り込みました。すると、実際には Include1.cpp は「プログラム1+2」であるとして、コンパイルされるのです。
本当はさらに iostream.h も展開されます。そして、この中に cout の宣言が入っているのです。また、string.h には strlen の宣言が、stdio.h には sprintf の宣言がそれぞれ入っているのです。
で、strlen などの関数の中身はというと、それはまたさらに別のところにあって、それは自動的にリンクされます。
また、このようにファイルの先頭でインクルードされるファイルのことをヘッダーファイルと言います。
上のを見て少し変に思った方もいるでしょう。iostream.h は < > で囲んでいるのに、自分で作った Include1.h は " " で囲んでいるではありませんか。これはどういうことなのでしょう。
それは、ファイルの置いてある場所に関係してきます。
ツール側の提供しているヘッダーファイルをインクルードする時は < > で囲みます。ツール側の提供しているヘッダーファイルはあるフォルダに入れられています。そして、そのフォルダ内のファイルをインクルードするときに < > を使うのです。
一方 " " は自分で作ったヘッダーファイルをインクルードするときに使います。ヘッダーファイルに限らず、自分で作ったファイルはそのワークスペースに対応したフォルダの中にあります。そして、そのフォルダ内のファイルをインクルードするときに " " を使うのです。
今回はもうこれで終わりです。短かったですが、今回のことは重要です。とはいえ、大きなプログラムを作るときはいやでも使うことなので、そのうち自然に覚えてしまうでしょう。
では、今回の要点です。
それでは、さようなら。
Last update was done on 1999.3.16
この講座の著作権はロベールが保有しています