对任何声明中的评论进行澄清

时间:2017-11-07 18:37:00

标签: c++

当我在任何语句中评论时:

   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

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

2 个答案:

答案 0 :(得分:7)

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

所以前两个例子相当于:

cout << "Howdy" << endl;

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

c out << "Howdy" << endl;
由于c out内的空格,

显然无效。

答案 1 :(得分:0)

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