在带有语句的行之前通过单行注释的错误

时间:2013-01-12 14:02:54

标签: c++ comments

  

可能重复:
  A function-definition is not allowed here before ‘{’

我想分享我在代码中所做的这个错误,这是一个很难找到的错误:

#include <iostream>

void StartNuclearWar() {
    std::cout << "War in progress..." << std::endl;
}

int main()
{
    int a = 0;

    // Get activation codes from C:\codes\
    a = 1;

    if(a == 0) {
        StartNuclearWar();
    }
}

它在哪里?

2 个答案:

答案 0 :(得分:10)

错误在评论中:对于我们来说,最后的\字符代表一个目录,对于编译器,它意味着以下行是当前行的一部分。 当然,每个开发人员都知道,但在这种情况下,这个细节很好地隐藏了。

答案 1 :(得分:2)

很好,MSDN称之为line splicing

  

以反斜杠(\)结尾并紧跟换行符的所有行与源文件中的下一行连接,形成来自物理行的逻辑行。除非它是空的,否则源文件必须以不带反斜杠的换行符结尾。