コメントの書き方と注意点

2種類のコメント

ソースにはコメントを書くことができます。C言語の場合、コメントの書き方は2通りあります。

1つは /* と */ で囲う方法。もう1つは、// から改行までがコメントとなる方法です。

//の方が楽ですが、/**/ の方が互換性が高いという利点があります。また、/**/はコードの途中に書くことができます。

printf("test" /*テストです*/ );

 

一方、//は改行を利用するので以下のようなメリットとデメリットがあります。

// コメントの後ろにバックスラッシュ(メリット?) \
ここもコメント扱い
// コメントの後ろにバックスラッシュ(デメリット) \

printf("Lost"); ←このコードは無かったことにされる

 

このデメリットは怖いものです。ソースを見直してちゃんとprintfが書いてあるのに、実行すると何も出ない…なぜ?
というバグに見舞われると、思い込みも手伝ってなかなか気づけない、という事態に陥ってしまうのです。

\を見落とすなんて無いと思いますよね?でもこんなケースがあるのです…

コメントと文字コード

文字は、文字コードと呼ばれる数値でデータ化/ファイル化されています。
初期のコンピュータはアルファベットしか
入力/表示できませんでした。
アルファベットと数字、記号だけであれば、100~200種類もあれば十分なので
1文字1byte、万国共通でした。

しかし、日本を初めとして複雑な文字を使用する国々では、自国語を表示するために2byteで1文字、等といった拡張を行いました。

そして、ソースのコメントにもこの文字コードを使うようになりました。

しかし、この文字コードの中に\と同じコードが含まれていました。

そしてコンパイラがそれを
// コメント \
と解釈し、次の行に書かれた大事なコードがなかったことにされたのです。

他にも、こんなケースがあります。

スペースは見えないから怖い

printf( "test" );

これをコンパイルするとエラーが表示され、コンパイルが途中で止まってしまいます。

なぜでしょう。スペースを入れてはいけない?いや、そんなわけはありませんが…

そう、半角スペースは良いのですが、全角スペースはダメなのです。
そして、スペース文字は見えないから、ソースを眺めていても気づけないのです。
ソースを書くエディタの表示が等幅フォント(MS ゴシック等)表示の時はまだましですが、プロポーショナルフォント(MS Pゴシック等)の時は半角スペースの幅と全角スペースの幅は大差無いので、カーソルを置いて見ても、それでも分からないのです。
できれば、エディタの表示フォントは等幅フォントにしましょう。

コメントを充実させるのは良いことですが、日本語のコメントとコードを交互に書いていると、
忘れたころにやってしまうのだそうです。

おや他人事みたいな言い方ですね?
自慢ではないですが私はこの経験はありません。

Windowsのデフォルト設定では日本語入力においてスペースを押したとき全角スペースが入力されます。
Shiftを押しながらスペースを押すと半角スペースが
入力されます。
私は半角スペースを多用するので、Windowsをセットアップした後は、
使い始めるといつもすぐこれに気付いて設定を逆に変えてしまうのです。
だから滅多に全角スペースを
使うことがなく、このトラブルに巻き込まれることもなかったのでしょう。

Win10 デフォルト=全角スペース を デフォルト=半角スペースにする設定

タスクトレイのIMEアイコン(Aとかあとか書いてあるアイコン)を右クリック
  - プロパティ
    - 詳細
      - 全般タブ
        - スペースの入力:「常に半角」にする。