これから、諸君は多くのプログラムを作る。それらは、分かりやすく分類しな
くてはならない。そのため、それぞれのプログラム用にサブディレクトリーを
作成し、その中にプログラムを入れておくことが望ましい。サブディレクトリー
の作成から、ソースファイルの作成、コンパイル、実行が一連のプログラム作
成の手順である。ここで、
サブディレクトリー名 |
work |
ソースファイル名 |
hogehoge.c |
実行ファイル名 |
fugafuga |
とした場合の具体的なプログラム作成方法を示す。ただし、名前は適当に変えてよい。
- サブディレクトリーの作成と移動
- コマンド「mkdir work」と入力し、サブディレクトリー
を作成する。
- コマンド「cd work」 と入力し、作成されたサブディレ
クトリーに移動する。
- ソースファイルの作成
- コマンド「iedit hogehoge.c」と入力する。
- エディターの編集画面が出てくるので、プログラムを打ち込む。
- プログラムを打ち込み終わると、その内容のセーブ(保管)する。
- ソースプログラムのコンパイル
- コマンド「cc -o fugafuga hogehoge.c」と打ち込み、ソー
スファイルをコンパイルする。このコマンドで、ソースファイル
「hogehoge.c」を翻訳して機械語の「fugafuga」が出来上がる。
- 「cc」がコンパイルをしなさいという命令である。
- 次の「-o」は出力先を示すオプションで、空白を
空けた直後に機械語に翻訳される実行ファイル名を書く。
- 最後に、ソースファイル名を書く。
- もし、エラーがあればソースプログラムを再編集して、保管、
コンパイルを行う。
- 実行ファイルの実行
- ターミナルで、実行ファイルがあるか確認をする。コマンド
「ls」を打ち込むと、実行ファイル「*」が表示さ
れる。ファイル名の後ろにアスタリスクが付いているのは、実行
ファイルの印である。
- コマンド「fugafuga」と打ち込こむことにより作成したプ
ログラムを実行できる。
- もし、作成した実行ファイル名がUNIXのコマンドと同じ
場合、UNIXコマンドが優先されて実行できない。
- 「./fugafuga」のように強制的に、カレントディレ
クトリーを指定して、実行させる。
これまでに学習したプログラムは、printf()関数を使って、ダブルクォーテー
ションの間に書かれた文字をディスプレイに書き出すプログラムでった。それ
は、次のようなものである。
=1 program/yes.tex
このプログラムの各行の役割は、次の通りである。コンピュータープログラム
は、各行がきちんとした役割を持ち、厳密に動作することを理解しなくてはな
らない。
- 1行目は、今のところ、おまじないと思って、C言語のプログラムの最
初に書くものだと考える。これでは、気がすまない人は、以下を読むこ
と。
- #include stdio.hは、printf()関数
等の定義が書かれているヘッダーファイルstdio.hを挿入する。
- 3行目は関数main()を示しており、4行目の{から10)行
目の}がその範囲である。intは、integer(整数)の略で、そ
の関数が実行されると、整数の値が返されるということです。その整数
の値は、9行目のreturn文で0を返している。しばらくは、3と4、9、
10行目はおまじないとして、この通りに書くのが良いであろう。
- 5行目はコメント文(注釈文)である。/*と*/で囲まれた部分
は、/*と*/を含めコンパイラーは無視をする。要するに、機
械語に翻訳されないので、プログラムの動作には全く影響しない。その
目的はプログラムの内容をわかり易くするために書く。そうすると、
- 保守性がよくなる。
- 拡張するときに、参考になる。
- プログラムミスの発見がしやすい。
など、有益である。
- 6行目と7行目のprintf()関数で、画面にメッセージを書き出して
いる。この関数は、括弧内のダブルクォーテーション内の文字をそのま
ま、ディスプレイに書き出す。ただし、\nはエスケー
プシーケンスと言って、これは改行を表す。
以上がプログラムの内容の全てである。実際にプログラムが動作している部分
(実行文)は、5と6、9行目であるが、それを実行させるために、いろいろ準備
が必要である。これ以外の行は、その準備のために必要である。
あとはプログラムは一目見て分かりやすいように、空行(2と8行)を入れたり、
インデント(5〜9行)を行っている。空行やインデント2が無くてもプログラムは動作するが、プ
ログラマーの処理の塊がすぐに分かるようにすることは重要である。長いプロ
グラムを書くときに、ミスをかなり減らすことができる。
ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年8月22日