C 言語 | C 言語入門 | コメント

コメント(comment)を使うと、ソースコードにメモを残せる。コメントはコンパイル時に無視されるため、プログラムの動作には影響しない。

後で読み返すために

この本の C 言語サンプルプログラムは、長くても数十行程度である。各章で扱う重要な機能の仕組みを十分に学べるように、ソースコードをできるだけ単純な形にまとめ、不要な内容を極力含めていないためである。

しかし、実際の開発現場にあるコードは少なくとも数千行、大規模な開発では数十万行から数百万行に達する。この規模のコードは、開発者自身にとっても管理が難しい。他の人が書いたソースコードを読む場合もある。自分で書いたコードであっても、後で読み返したときに意味がわからなくなることがある。

そこで、プログラムの実行とは関係のないコメントをソースコードに記述できる。C 言語のコメントは /* で始まり、*/ で終わる。/**/ の間にある文字は、例外なくコンパイル時に取り除かれる。改行を含められるため、複数行のコメントも記述できる。コメントを残しておけば、他の人がソースコードを読むときに処理内容を説明できる。また、後で自分が読み返したときにも、コードの意味を思い出しやすくなる。

コード 1

#include <stdio.h>

int main()
{
    /* コメントなのでプログラムには影響しない */
    printf("これは実行されます。\n");
    /* printf("コメント内にあるため実行されません。\n"); */
    /*
    ソースコードを読み解きやすくするための補足説明などを記述する。
    コメントは複数行でもよい。
    */
    return 0;
}

このプログラムでは、ソースコード内にコメントを記述している。このように、大規模な開発プロジェクトではプログラムの説明をコメントとして残すことが望ましい。ただし、文字列リテラルの中にコメントを書くことはできない。

また、コメントを入れ子にすることもできない。たとえば /* /* */ */ と記述すると、/* /* */ までがコメントとして解釈される。

元の C 言語仕様には定義されていないが、多くのコンパイラーは 1 行コメントもサポートしている。1 行コメントは連続したスラッシュ文字 // で始まり、その行の末尾までをコメントにする。

// これはコメントである。
// 範囲は 1 行だけなので、各行に指定する必要がある。
printf("Kitty on your lap"); // 行の途中にも記述できる。
/////////// これもコメントである。 ///////////

1 行コメントは C++ 言語仕様であり、元の C 言語仕様には含まれていない。しかし、現在の多くのコンパイラーは C++ をサポートしているため、C 言語でも 1 行コメントを使用できる。たとえば、ある行を一時的に無効化してコンパイルしたい場合に、1 行コメントを使って簡単に試せる。古い C 規格にも厳密に準拠するコードを書く必要がある場合は、この形式を避けること。

C 言語のコメント /* */ と C++ で追加されたコメント // は、多くのプログラミング言語で共通して使われている。C/C++、Java、C#、JavaScript などでも利用できる。