美しいソースプログラムというのは、結局、読みやすく間違いが減るようなものをいう。
そういう意味で、「きれい」といっても芸術的というような意味ではなく、優れて
機能的な意味における美しさを意味する。ソースコードの書き方には、従って、
色々な流儀があり、それぞれ一理を持っているために、唯一の書き方というものは、
当然存在しない。ここでは、K & R に準拠した書き方について述べる。
for ( i=0; i<10 ; i=i+1 ){
if ( i < 5 ){
printf("test1\n");
}else{
printf("test2\n");
}
}
この例では、for 文と if 文が入れ子になっており、特に
の対応が問題
となる。しかし、この例の書き方は、どの括弧がどれに対応するかが非常に分かり
づらい。
従って、こうした書き方はミスやバグの原因となる。これを、K & R 風に括弧の
対応を付けた書き方に直すと、
for ( i=0; i<10; i=i+1 ){
if ( i<5 ){
printf("test1\n");
}else{
printf("test2\n");
}
}
のようになる。ポイントは、字下げ(インデント)の部分で、for と for の終わり
を示す
が同じ桁位置にあり、if と真であるときの終わりの
および偽である
ときの終わりの
がすべて同じ桁位置にきている。更に、これらの if 文の
実行文は全て if より一段右に寄っていて、同じ桁位置に置かれている。
これによって、プログラムの構造が非常に見やすくなる。ここで、桁位置を
合わせるためには、空白で揃えるよりもタブを使ったほうが効率が良い。
タブは、目で見たときは数個の空白のように見えるが、実際は1つの文字である
ので、削除すると左に1段づつ寄ることになるので、便利である。
キーボードからは、Q の隣にある Tab キーを押すことによって入力できる。
ちなみに、通常タブは 8 文字の空白として表示されるが、vi では、これを
4 文字の空白として表示するように設定することも出来る。(入れ子が多くなり
大量の字下げが必要なときに便利である。)
タブで表わす空白の数は、以下のコマンドで変更できる。
ex モードで、:set ts=? (? は、4又は8)、従って、4個の空白を表わす
ようにしたい場合は、 :set ts=4 とすれば良い。
最初のページ 戻る 次へ
最後のページ 目次
Hiroyasu Asami