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

Gau*_*rav 1 c++

当我在任何声明中评论时:

   std::cout/*inside cout statement*/<<"Howdy"<<endl;  //Code 1
Run Code Online (Sandbox Code Playgroud)

要么

 std::cout/*inside cout 
 statement*/<<"Howdy"<<endl;    //Code 2
Run Code Online (Sandbox Code Playgroud)

它工作得很好(尤其是代码2的工作令人惊讶,其中整个事情被分成两行 - 当一些令牌在内部被破坏时,唯一的问题就出现了:

  c/*the hell*/out<<"Howdy"<<endl;  //cout is broken
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*mar 7

/* ... */评论被移除,并用在处理的下一阶段的单个空间取代.

所以前两个例子相当于:

cout << "Howdy" << endl;
Run Code Online (Sandbox Code Playgroud)

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

c out << "Howdy" << endl;
Run Code Online (Sandbox Code Playgroud)

由于里面的空间,这显然是无效的c out.

  • 你知道这些陈述可以分布在多行,不是吗?你可以在一行上有"cout",在下一行上有"<<". (3认同)