これまで、printfやscanf関数を使ってきました。
実を言うとこれらの関数を使うためには、そのプロトタイプ宣言と呼ばれるものが必要です。
プロトタイプ宣言とは、宣言以降の記述で、その関数が使えるようにする働きをします。
例えばprintfなら次のようなものです。
int printf(const char *, ...);
(正確なprintfのプロトタイプ宣言は、開発ツールであるコンパイラによって違います)
関数と呼ばれるものは、これまで使ってきたprintfやscanf以外にもさまざま存在するのですが、
それら関数を利用するごとに、このようなプロトタイプ宣言が必要になります。
そして、それを記述する代わりに、
そのプロトタイプ宣言の記述があるファイルを取り込む指示が#includeなのです。
次のような意味になっています。
これにより、stdio.hファイルの中にある
プロタイプ宣言や、変数、型などが使えるようになる仕組みになっているのです。
なお、< >の中で指示するファイル名は、開発環境のなかで決っている
ディレクトリの中に存在していなければなりません。
この拡張子が、.hのファイルはヘッダーファイルと呼ばれています。
printfを使う時に、 #include <stdio.h>の記述を忘れると、 コンパイラは警告(warning)を出すのが普通です。例えば次のようなものです。
warning : 'printf' は定義されていません。int 型の値を返す外部関数と見なします。
警告は、
『文法的に間違いがある。しかしソースファイルの翻訳が可能だったので、コンパイルしました。』
と言う意味のコンパイラが出すメッセージです。
これはビルドした時に出すメッセージですが、
プログラマは、警告のメッセージがでないように注意すべきものとなります。
ヘッダーファイルは、関数の機能ごとにたくさん存在します。以下に例を示します。
その他にも、たくさんのヘッダーファイルがありますが、必要に応じて説明します。