注释有以下两种形式:
/* 注释 */
// 注释
第一种为传统注释形式,在ASCII字符/和/之间的所有内容将被忽略掉(和C、C++相同);第二种为行末注释形式,在ASCII字符//和行结束符之间的所有内容将被忽略掉(和C++相同)。
注释可以通过以下规则来加于形式化描述:
<注释>定义为:
<传统注释> 或
<行末注释>
<传统注释>定义为:
/*<非星号字符><注释尾部>
<行末注释>定义为:
//{<输入字符>}<行结束符>
<注释尾部>定义为:
*<注释尾杠>
<非星字符><注释尾部>
<注释尾杠>定义为:
/ 或
*<注释尾杠> 或
<非星非杠><注释尾部>
<非星字符>定义为:
不是星号*的输入字符
<非星非杠>定义为:
不是星号*和斜杠/的输入字符
上述词法规则隐含以下注释的特点:
注释不能嵌套;
在以//开头的注释中,/和/仅作为注释的内容而无其它含义;
在以/*开头的注释中,//仅作为注释的内容而无其它含义。
因此,下列文字:
/* 本注释 /* // /* 到此结束 */
仅表示一个完整的注释。
同时,词法规则也隐含注释不可出现在字符量和字符串中。