澄清任何声明中的评论

Clarification regarding comments within any statement

本文关键字:评论 声明 任何      更新时间:2023-10-16

当我在任何语句中发表评论时,例如:

   std::cout/*inside cout statement*/<<"Howdy"<<endl;  //Code 1

 std::cout/*inside cout 
 statement*/<<"Howdy"<<endl;    //Code 2

它运行良好(尤其对代码 2 的工作感到惊讶,其中整个事情被分成两行 - 当某些令牌在内部被破坏时,就会出现唯一的问题,例如:

  c/*the hell*/out<<"Howdy"<<endl;  //cout is broken

编译器究竟如何处理这个问题?

下一处理阶段,/* ... */注释将被删除并替换为单个空格。

所以前两个例子等效于:

cout << "Howdy" << endl;

但是最后一个例子被视为你写的:

c out << "Howdy" << endl;

这显然是无效的,因为c out内部的空间.

因为在预处理器阶段,删除了注释并替换为下一个字符。然后编译器阶段检查代码的语法。