&引用;语法错误:缺少'';在'之前;在c+;+;项目中,使用预编译头 编译简单C++项目时,我得到以下错误: syntax error : missing ';' before '{'

&引用;语法错误:缺少'';在'之前;在c+;+;项目中,使用预编译头 编译简单C++项目时,我得到以下错误: syntax error : missing ';' before '{',c++,C++,我做了研究。编译器不允许在for循环中声明变量,这对我来说非常不方便。 如果我在for循环之前声明循环变量,错误就会消失 这是一个C++项目,带有“STDAFX.H”预编译头。 这种编译器行为(C89)是因为我使用了预编译头,还是因为我在过去的配置中修改了一些东西? 有没有办法避免这种情况发生 另外,我正在windows 7 64位上使用visual studio 2012 代码示例: 错误在第一行 for (int idx = 0, int i = 100; idx < (sizeof(

我做了研究。编译器不允许在for循环中声明变量,这对我来说非常不方便。 如果我在for循环之前声明循环变量,错误就会消失

这是一个C++项目,带有“STDAFX.H”预编译头。

这种编译器行为(C89)是因为我使用了预编译头,还是因为我在过去的配置中修改了一些东西? 有没有办法避免这种情况发生

另外,我正在windows 7 64位上使用visual studio 2012

代码示例:

  • 错误在第一行

    for (int idx = 0, int i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++)
    {
        anTestScores[idx] = i;
    }
    
    for(intidx=0,inti=100;idx<(sizeof(anTestScores)/sizeof(int));i++,idx++)
    {
    前测分数[idx]=i;
    }
    
  • 这就编译了

    int idx;
    int i;
    for (idx = 0, i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++)
    {
        anTestScores[idx] = i;
    }
    
    intidx;
    int i;
    对于(idx=0,i=100;idx<(sizeof(anTestScores)/sizeof(int));i++,idx++)
    {
    前测分数[idx]=i;
    }
    
  • 配合

    for (int idx = 0, i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++) { anTestScores[idx] = i; }
    
    for(intidx=0,i=100;idx<(sizeof(anTestScores)/sizeof(int));i++,idx++{anTestScores[idx]=i;}
    
    这在
    for
    循环的第一条语句中声明了int类型的两个变量

    这样做有效而您的其他尝试无效的原因如下:


    每个声明语句必须用一个
    相互分隔,但相同的
    用于分隔(;;)的
    部分它没有工作。现在,你想要C还是C++?你有CPP文件吗?为什么你认为C89是相关的?请显示错误的行,还有几行。你可能犯了一个错。伊凡:C89和C90是C标准。你声称自己正在编写一个C++项目。这是正确的吗?在代码上有问题。无论如何……是的,我正在通过简单的C++教程,只是在购买一本书之前尝试一下。我想把这个项目编译成C++项目。它是作为C++项目创建的。它只包含CPP和头文件。我不介意。它是否相关,我不想被强迫在循环之外声明循环变量,如果我在一个方法或函数中有几个循环,这会给我带来不必要的麻烦。我发现这种编译器行为是c89编译器特有的(如果我是对的)。我没有注意,开始查看,并通过错误消息找到了答案,这使我认为此问题与编译器版本有关。谢谢。