There are several steps in compilation of a program:
在第一步"行重建"?
中删除注释答案 0 :(得分:4)
答案 1 :(得分:1)
我要回答记住C编译器的问题。在大多数编译器中通常都是这种情况,但我要提供的示例将是C编译器。
在线重建阶段之后删除注释,并且在词法分析阶段通常会忽略注释。可以通过这种方式进行快速验证。请考虑以下代码:
printf("Hello "); // *************\
printf("World"); // I like boxes!\
printf("!\n); // ^^^^^^^^^^^^^\
当C编译器发现反斜杠后面紧跟一个新行时,行重建阶段会将其转换为一行。
你可以弄清楚上面的代码会产生什么结果!
设计选择是因为它与我们期望的行为一致,必须始终连接新行后面的反斜杠。
然而,词法分析阶段涉及标记化。在对代码进行标记以进行进一步处理时,此阶段可以方便地忽略注释。所以当下一个阶段被调用时,评论将会丢失!
希望这澄清一下! :)
P.S。:来源!
That line-reconstruction takes place before comments are even analysed