必要なコメント:
・思いつきアルゴリズムの処理の前に、軽く流れを説明するコメント。
・関数の前には一行要約。
・定石にそぐわない処理に理由を説明。
 例えばmallocの戻り値をチェックしない等。

不必要なコメント:
・ブロックの最後に、ブロック先頭の文を添える。以下例。
if(C) {
} // if(C)
・式や文単位で処理の内容を説明するコメント。以下例。
if(C) // Cは真か?
 fprintf(fp, "('A`)"); // fpに顔文字"('A`)"を出力。
・自分語り。「ここはこのように書くべきだ!」等。