我读到C语言中的注释在预处理时被单个空格取代。在规范中
程序被拆分为用空格字符分隔的令牌评论替换为单个空格[增加强调]。然后遵守预处理指令,并且宏(第A.12.3-A.12.10段(。
这一选择背后有具体原因吗?
我看过这个例子
#include <stdio.h>
int/*This is a comment*/main(){
return 0;
}
如果我们不将注释替换为一个空格,那么上面的内容就会出现错误。然而,以这种方式写评论似乎是一种不好的做法。用一个空格代替注释,而不仅仅是对其进行条带化,还有其他原因吗?
int a/* comment */b;
如果它没有被一个空格取代,上面的代码将编译为int ab;
。我认为这会比目前的规格更糟糕。