サイトマップ / C言語講座>出入り口>総目次>目次:ヒープ領域>分割コンパイル(ソース1)||ソース2
[バイナリサ−チ]←このソース→[リスト型のデータ構造]
/* 今日は分割コンパイルについて学びます。プログラムが大きくなると、機能別に複数のファイル ( モジュール ) にプログラムを分割し、分割コンパイルを行うと、作業効率が上がります。
複数の人が分担するようなプロジェクトでは、必然的にソースファイルが複数になります。
分割コンパイルの仕組みについて、簡単に説明します。コンパイルをすると、オブジェクトファイルが作られます。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言語講座−それ自体コンパイルできる教材を使った講座です−