分割したプログラム記述


ちいさなプログラムを書いているうちは、 一つのファイルにプログラムの全てを放り込んでしまっても、 やっていけないことはありません。

ただ、プログラムが大きくなっていく場合、 プログラムはその部位や機能に合わせて分離して記述する方が、 分かりやすく、保守しやすくなります。

例えば、プログラムを A という部分と B という部分に分離出来る場合、 A, B の境界をしっかり定めた上で、その中身をそれぞれ実現する方が、

などの利点があるわけです。 皆さんのプログラムと標準ライブラリが分離しているのもその例です。 別の例としては、僕が出題プログラムを出して、 皆さんに回答プログラムを作ってもらうなんてことも可能なわけです。

で、C 言語の場合も、 プログラムを複数の部分に分割してコンパイルすることができるようになっています。 その方が、各ファイルのコンパイル時間が短くなるというメリットもあります。


C 言語では、各部分(A や B)を作成する場合、 その宣言と実装を分離して記述する事になっています。 つまり、部分 A を利用する側のための部分と、実際に部分A の中身を記述する部分です。 一方で、コンポーネントB側で、A のコンポーネントを利用したい場合は、 という具合いになるわけです。

普段、皆さんが標準ライブラリを利用するのも同じです。 例えば、printf() という機能を使いたいから、 stdio.hをinclude する事で宣言を取り込み、 標準ライブラリとリンクされることで、その機能を使うというわけです。


2001.10.19/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp