next up previous contents
Next: 1.3 初めての C プログラム Up: 1. 初めての C Previous: 1.1 C とは何か?

1.2 プログラムの作り方

コンピュータで実行可能な物を、実行形式などと言い、実行形式のファイルを 実行可能ファイルと呼ぶが、C で実行形式を作成するには以下の手順を踏まなければ ならない。

ソースコードの作成

vi 等のエディタを用いて、ソースと呼ばれるテキストファイルを作成する。

コンパイル

ソースを機械語に翻訳してもらう。( 出来たものをオブジェクトと言う )

リンク

上で作ったオブジェクト同志やライブラリ中のオブジェクトを結合して 実行可能ファイルを作成する。

実行

作った実行可能ファイルを実行する。

最初はコンパイルとリンクは、意識しなくても、コンパイラー( 翻訳者 )が勝手に やってくれる。従って、当面は、以下の手順で実行ファイルが作られる。

ソースを書く

例 $ vi kadai1_1.c

コンパイルする

例 $ cc kadai1_1.c

実行する

例 $ a. out

実行ファイルの名前は、何も指定しないと必ず a. out という名前になる。 (実行ファイルの名前の付け方は、後で学ぶが、a. out の名前を変えても良い。)

ソースファイルの名前は、最後に必ず . c を付けなければならない。

 

ところが、コンパイラーがうまく翻訳できないと、cc をした時に、 次のようになることがある。

    "kadai1_1.c", line 5: syntax error at or near variable name "printf"

英語で出てくるとそれだけでパニックになる人もいるだろうが、落ち着いて読めば それ程たいしたことはない。

まず最初の "kadai1_1.c" は、ソースファイルの名前です。次の、 line 5: は、5行目という意味。で、最後の、 syntax error at or near variable name "printf" が大変ですが、 syntax というのは 「 文法 」 という単語なので、syntax error は文法エラーという 意味ですね。だから、書いたソースが文法的に間違っていたということになります。 次の、at or near は、at が 「 ...で 」 という場所を意味し、or は「 又は 」 で near は 「 近くで 」という意味なので、

5行目:variable name "printf" の所か、またはその近くで 文法が間違っているよ!

という意味になる訳だ。ところが、コンパイラーというものは、1行目から順番に ソースを読んでいくので、4行目でおかしくても取り敢えず解釈できる限りは解釈 しようとする。そのために、4行目に原因があるのに、5行目がおかしいと言って 来るときがあるので、注意しよう。だから、エラーが出たら、まずそのエラーの 出ている行をチェックし、次にその前の行、そこも正しければ、更に前の行という 具合に前に戻っていけば良い。 反対に、後ろの行に原因があることは、ほとんどと 言ってないので気にする必要はない。

 

また、エラーのメッセージが複数出てくるときもあるが、別に気にせず、最初の エラーだけを修正して、コンパイルしなおせば良い。 何故ならば、最初の行が 変だったのでコンパイラーの気が狂ってしまっている場合が多いからだ。 最初のエラーを修正しても、まだエラーが出る場合は、また同じように最初の エラーメッセージについてだけ修正し、コンパイルする、という風に繰り返して 尺取虫のように順番に直していくのがコツである。



Noriyo Kanayama