コメント
コード内にメモを残す
コードの中に何らかのメモを残しておきたいことがあるかもしれません。しかし、ソースコード内に書かれたテキストはコンパイラによって処理されるため、プログラミング言語の仕様で定められた文法に従っていないテキストが含まれていればエラーとなってしまいます。
そこで、コードとは直接の関係のないメモなどをソースファイル内に残す手段としてコメント(Comment)が用いられます。日本語では注釈と訳されますが、一般には英語のままコメントと呼ぶことが多いです。コメントはコンパイル時にコードとしては扱われず、完全に存在しないものとして扱われるため、日本語も含めて自由にテキストを書き残すことができます。
C++ 言語では 2 種類のコメント方法が提供されています。1 つは C 言語から伝統的に使われている /* から始まって */ で終わる複数行コメントです。この /* から */ までの間に挟まれている文章は、すべてコメントとしてコンパイル時には無視されます。
/* コメント */
コメントは、コードのあらゆる場所に記述することができ、上記の /* から */ までの間のテキストはコンパイル時に無視されるため、無いものとして扱われます。
/* ここはコメントです */ /* 改行もできます。 通常はコードの意味や説明を残すために使われます。 */
上のコメントはどちらも有効です。C++ 言語に限らず、Java や C# など、後発のプログラミング言語の多くが、この方式のコメントを踏襲しています。
#include <iostream> int main() { /* C++言語、はじめました。 std::cout << "このコードは実行されません!!"; */ std::cout << "Stand by Ready!!\n"; return 0; }
コード1のように /* から */ までの間には、プログラムとは関係のない任意のコメントを残すことができます。通常は、ソースコードの補足説明や注意書きなどをコメントとして残しますが、エラーが発生するコードなどを一時的に無効化する目的にも利用できます。
もう 1 つのコメント方法は単一行コメントです。このコメントは連続したスラッシュ記号 2 つ // から始まって、その行の末尾(改行文字)で終了します。従って、自動的にコメントは行単位となります。このコメント方法は古い標準 C では存在せず、元は C++ 言語で追加されたものですが、多くのコンパイラは C 言語でもこのコメント方法を許容します。
// コメント
長文の説明は /* */ による複数行コメントが便利ですが、メモ程度であれば単一行コメントの方が簡素に記述できます 。
#include <iostream> int main() { //C++言語、続けてます。 std::cout << "Stand by Ready!!\n"; return 0; }
単一行コメントと複数行コメントのどちらを使うかは開発者の好みです。コメント量に応じて使い分けてください。
コメントによるトークンの分離
複数行コメントである /* */ は、トークンを区切る性質があります。一般的にコメントはコンパイル時に存在しないものとして扱われると解釈されますが、/* から */ までのコメントは前後する文字を区切るホワイトスペースとしても作用します。よって、アルファベット列の間に /* */ コメントを挟むと、アルファベット列は結合されずに異なるトークンとして分離されます。
int ma/* */in() { return 0; }
上のコードは関数名 main の間に複数行コメントを入れています。コメントはコンパイラによって無視されるため、問題なく main と解釈されると思うかもしれませんが、複数行コメントはトークンを区切るため以下のコードと同じ意味になります。
int ma in() { return 0; }
これでは main() 関数の名前が途中で切れてしまい、意味が変わってしまいます。構文に反しているためビルドしてもエラーが発生します。