prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 20.20

Q为什么 C 语言的注释不能嵌套?我该如何注释掉包含注释的代码?注释是否允许出现在带引号的字符串中?


AC 语言的注释之所以不能嵌套,主要是因为 C 语言的注释是从 PL/I 语言借鉴来的,而 PL/I 的注释也不支持嵌套。因此,通常最好使用以下方式来“注释掉”可能包含注释的大段代码:#ifdef#if 0(但请参阅问题 11.19)。

字符序列/**/在双引号字符串中不是特殊的,因此不会引入注释,因为程序(特别是生成 C 代码的程序)可能想打印它们。(很难想象为什么有人会想要或需要将注释放在带引号的字符串中。很容易想象程序需要打印“/*".)

另外请注意,//注释自 C99 标准开始才在 C 语言中合法化。

参考文献:K&R1 第 A2.1 节,第 179 页
K&R2 第 A2.2 节,第 192 页
ISO 第 6.1.9 节,附件 F
Rationale 第 3.1.9 节
H&S 第 2.2 节,第 18-9 页
PCS 第 10 节,第 130 页


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管