サイトマップ / C言語講座出入り口総目次目次:ヒープ領域>分割コンパイル(ソース1)||ソース2

青い直線

分割コンパイル(ソース1)

青い直線

[バイナリサ−チ]←このソース→[リスト型のデータ構造]

/* 分割コンパイル */

/* 今日は分割コンパイルについて学びます。プログラムが大きくなると、機能別に複数のファイル ( モジュール ) にプログラムを分割し、分割コンパイルを行うと、作業効率が上がります。

複数の人が分担するようなプロジェクトでは、必然的にソースファイルが複数になります。

分割コンパイルの仕組みについて、簡単に説明します。コンパイルをすると、オブジェクトファイルが作られます。2回目以降のコンパイルでは、コンパイラは、ソースプログラムとオブジェクトファイルの日付を調べます。もし、ソースプログラムの日付の方が古ければ、前回コンパイルしてから、ソースファイルを変更していないことになるので、コパイルは行われません。もし、ソースプログラムの日付の方が新しければ、前回コンパイルしてから、ソースプログラムを変更したことになるので、コンパイルされます。ソースプログラムが複数のモジュールに分割されていれば、変更のあったモジュールのみがコンパイルされます。

上記の機能により、コンパイルに要する時間は、全体として短くなります。この効果は大きなプロジェクト程、顕著です。

他のファイルの中にある外部変数 ( グローバル変数 ) を参照するには、'extern' をつけて記憶クラスを指定すれば、参照が可能になります。なお、'extern' 宣言のある方のファイルに、メモリの割り付けは行われません。

他のファイルで宣言されている関数については、その関数を使うファイルにはプロトタイプ宣言が必要です。

今回はこのファイルに加えて、'Keylist.html' を'Keylist.c'という名前で同じディレクトリ ( フォルダ ) 置いて、同時にコンパイルして下さい。 */

/* ここからソースプログラム */

extern const char *unit[ ];     /* unit[ ] は 'Keylist.c' の中にある */

void ShowUnit(const char **p);  /* プロトタイプ宣言が必要 */
void main(void);

void main(void)
{
    ShowUnit(unit);             /* ShowUnit は 'Keylist.c' の中にある */

}

/* ここまでソースプログラム */

/* 今回はヘッダファイルは作りませんでした。分割コンパイルする時には、多くの場合、ヘッダファイルも作ります。 */

[バイナリサ−チ]←このソース→[リスト型のデータ構造]

青い直線

/* (C) 2000- YFプロ. All Rights Reserved. */    提供:C言語講座−それ自体コンパイルできる教材を使った講座です−

青い直線

サイトマップ / C言語講座出入り口総目次目次:ヒープ領域>分割コンパイル(ソース1)||ソース2