ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

C 言語演習プログラム -- 第 10 日目

最終日です。
総集編かと思いきや、マクロと .h ファイルの説明。マクロって意識して使ったことなかったんですが、Perl でいうところの use coustant みたいなモノ?

そしてようやく .h ファイルの説明にたどり着くわけで。「ヘッダーファイル」っていうんですね。
printf とか頻繁に利用される関数実体はあらかじめ機械語にしてあると。
自分でヘッダーファイルを造る場合は、プロトタイプ宣言、定数・構造体の定義をしておくと便利とのこと。標準関数以外は「ダブルクォート:"」でヘッダーファイル名を囲むんですって。制約とかでは無いようなので、書き方のマナーみたいなモノなのかな?

#include <stdio.h>
#include "origin.h"

コンパイル時にはカレントディレクトリの .h ファイルを見に行くとのこと。lib の指定はソース上ではできないのかしら?まぁコンパイル済み実行ファイルを作るから、必要無いのか。


あとなるべく気にしないようにしていた、コンパイル時にできるほかのファイルの説明もここで。

c:\C> bcc32 test.c
c:\C> dir
...
2007/07/14  15:53             3,149 test.c
2007/07/14  15:53            69,632 test.exe
2007/07/14  15:53             1,820 test.obj
2007/07/14  15:53           393,216 test.tds
...

.tds … デバック情報ファイル
.obj … オブジェクトファイル(実行ファイルを作成途中の中間ファイル)

bcc32 による C のコンパイルは以下のように動くそうです。

  1. プリプロセッサ:include、マクロを展開して、コンパイル前の準備
  2. コンパイラ機械語への翻訳(**.obj が作成される)
  3. リンカ:ライブラリファイル **.a、**.lib を .exe ファイルに結合

ずっと気になってた、.c ファイルの分割もコンパイルするときに複数ファイル指定すれば良いだけみたい。

> bcc32 file1.c file2.c
  -> file1.exe が作成される。

と、ここで時間切れにつき続きを後で書く。わすれないようにせなー