補足:プログラムを書くスタイル


ソースプログラムはコンピュータに仕事をさせるための、 一種の「手順書」と呼べるものですが、 人間自身もそれを見ます。 ソースプログラムを書く場合には、 自分以外の人がそれを見て、 自分が何をコンピュータにさせようとしているのかが 容易に理解できるよう留意する必要があります。 見かけの美しいプログラムを書くことは、 無駄なことではありません。


コメント(注釈)

そのプログラムを他の人や、 プログラムの作者自身が読むときの参考になる、 そのプログラムに対する解説です。コンパイラはそれを無視します。 C 言語のコメントは /* で始まり */ で終わります。 C++ 言語では、これに加えて // から行末までをコメントとして扱います。

//      プログラム: hello.cc -- "Hello!" を標準出力に出力する
//      目的: プログラムの例
//      作者: 山田太郎
//      作成日: 1994年10月 3日
//      修正日: 1994年10月17日

#include <iostream.h>

int main() {
  /*
     挨拶をする
   */
  cout << "Hello!\n";

  return 0;
}

コメントの入れ子(ネスティング)はできません。 次のような例はエラーになります。

/* ……………… /* ……………… */
…………………… */
この部分が
ひとつのコメントになる
このに部分には
/* がないことになる

プログラムは エッセイのように読むことができる ものでなければなりません。 適切なコメントのないプログラムには 「トラブルの原因が潜在している」というエラーがあるとみなされます。


インデント(字下げ)

プログラムの構造を視覚的に表現するために、 プログラムにインデントを付けてください。 mule ではタブキーをタイプすると、 適切なインデントを自動的に付けてくれます。

カーソルのある行にインデントを付ける Tab または C-i

インデントはブロック({ と } にはさまれた部分)単位で、 入れ子になっている部分を深く(右に)します。 すなわち、{ に出会う度に、その次の行は1段右から書き始め、 } に出会う度に、その次の行は1段左から書き始めます。

#include <iostream.h>

int main() {
  char buf[1024];

  for (;;) {
    cout << "Input: ";
    cin.getline(buf, sizeof(buf));
    if (cin.eof()) break;
    cout << "Output: " << buf << endl;
  }

  return 0;
}

こういうスタイルで書く人もいます。

#include <iostream.h>

int main()
{
  char buf[1024];

  for (;;)
  {
    cout << "Input: ";
    cin.getline(buf, sizeof(buf));
    if (cin.eof())
        break;
    cout << "Output: " << buf << endl;
  }
  return 0;
}

インデントを付けないと、 非常に読みにくいプログラムになります。

#include <iostream.h>
int main()
{
char buf[1024];
for (;;) {
cout << "Input: ";
cin.getline(buf, sizeof(buf));
if (cin.eof()) break;
cout << "Output: " << buf << endl;
}
return 0;
}