コメントは、コンパイラが無視するテキストの領域ですが、プログラマの役に立つ情報を記述するために、使います。
唯一の例外は、あるタイプのコメントに現れる、metacommands です。
単一行コメント
単一引用符 (
') は、コメントを示すのに使います。ソース行の、他のキーワードが並んだ後にも、この単一引用符を使うことができます。
行の、単一引用符以降の部分は、コメントとして扱われます。
' コメント・テキスト
コメント文:
Rem
Rem で始まるソースコード命令文は、その行がコメントであり、コンパイルされないことを示します。
FreeBASIC では、
Rem はソース行の他のキーワードの後に表示されることもあり、動作は上記と同じです (ステートメントの残りの部分のみがコメントとして扱われます)。
Rem コメント
複数行コメント
複数行コメントは、記号 /' と '/ でマークされています。二つの記号の間の、すべてのテキストは、コメント・テキストとみなされて、コンパイルされません。
複数行コメントは、複数の行にかかることができます。また、命令文の途中で使うこともできます。
コメントの終わり以降、命令文は、いつものように解析され続けます。(コメントが、改行をまたいでいても、同様です。)
/' 複数行
コメント '/
Print "こんにちは" /' 埋め込みコメント'/" 世界"
Sleep
注意:
FreeBASIC は、複数行コメントではなくても、終了のコメント・マーカーに遭遇すると、単一引用符による通常の単一行コメントとして、扱います。
(終了のコメント・マーカーは、単一引用符で始まるからです。)
入れ子にされたコメント
複数行コメントは、その中に、他の複数行コメントを含めることができます。
それぞれの内側のコメントには、それ自身の、コメントの開始・終了のマーカーがあります。
/'
これは、コメントです。
/'
これは、コメントの中のコメントです。
'/
これは、コメントです。
'/
複数行コメントは、下位レベルの入れ子にされたコメントを、無制限に含むことができます。
FreeBASIC は、より多くのマーカーのために、終了コメント・マーカーの数が、開始コメント・マーカーの数に達するまで、すなわち、開いたすべてのコメントが閉じるまで、複数行コメントを分析し続けます。
行継続の後の、コメント
単一行コメントは、複数行命令文の、行継続文字 ( _ ) の後に来ることができます。
しかし、FreeBASIC は、行継続文字の後方はテキストを分析しないので、行継続文字の後に、複数行コメントの開始を置くことができません。
Print _ ' 行
"これは、前行の命令文の続きです。"
Sleep
Metacommands
$static や
$include などのメタコマンドは、単一行のコメントに置くことができます。
$ 記号とキーワードは、空白を含めず、ステートメントの最初の 2 つでなければなりません。
Rem -lang fblite か qb でコンパイルします
#lang "fblite"
Rem $Static
' $include:
'vbcompat.bi'
単一行コメント構文解析
単一行コメントでは、FreeBASICは、metacommand がないかどうかチェックするために、コメントを分析します。
FreeBASICは、複数行コメントを見つけると、FreeBASICは、通常のコメントとして扱って、終了コメントマーカーの後を、単一行コメントとして、分析し続けます。
FreeBASIC が、単一行コメントを分析するのを防ぎたいなら、別の単一引用符(
')を、コメントの始めに置いてください。
FreeBASIC は、複数行コメントのマーカーと metacommands を含む、行の後ろを、普通のテキストとして、分析せずに無視します。
また、コメントで遭遇する他の単語も、構文解析されません。
- 注意:
バージョン 0.21.0 では、これは、もう、-lang fb 方言では、適用されません。そして、複数行コメントマーカーは、単一行コメントの中では、完全に無視されます。
'' $static <-- 分析されないでしょう
'' この複数行コメントマーカー ("/'") は、無視されます
Print "この行は、コメントではありません。"
Sleep
例:
/' これは、複数行コメントの
コメント行の
例です'/
Rem これは、単一行コメントです
'これは、単一行コメントです
Dim a As Integer '命令文の後ろのコメント
Dim b As /' ここでも、コメントできます '/ Integer
#if 0
バージョン 0.16 以前では、 これは
複数行コードで
コメント・アウトする唯一の方法です
#endif
参照: