C言語のシステム

  Fig. 0.37にC言語のプログラムがどのように処理されて実行可能なプログラムになるか,そのシステムの全体像を示します。




まず,ソースプログラムがプリプロセッサによって処理されます(インクルードファイルの読み込み,マクロ展開などが行われる)。

そして,コンパイラによって機械語に翻訳され,モジュールになります。

Fig. 0.37に示したソースファイルはmain関数を含んでいるので,実行可能なプログラムにすることができます。リンカ(linker)
というプログラムが,各モジュールで参照しあっている変数や関数を調べ,必要なモジュールを結合します。

そして,実行可能なプログラムができあがるというわけです。

 では,ヘッダファイルには何が記述されているのでしょう? また,自作のモジュールとヘッダファイルを作るにはどのようにしたら
よいのでしょう? 

これらの疑問に答えるためには,モジュール間の参照をどのようにリンカが解決しているかを知らなければなりません。