"语法错误:缺少';' 在带有预编译头的c ++项目中的'{''之前

Iva*_*dov 0 c++

在尝试编译简单的c ++项目时,我收到以下错误:

syntax error : missing ';' before '{'
Run Code Online (Sandbox Code Playgroud)

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

这是一个带有"stdafx.h"预编译头的c ++项目.

这个编译器行为(C89)是由我使用预编译的头文件强制执行的,还是我过去使用我的配置编写了一些内容?有没有办法绕过这个顾客?

PS我在Windows 7 64位上使用visual studio 2012;

代码示例:

  1. 错误在第一行

    for (int idx = 0, int i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++)
    {
        anTestScores[idx] = i;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 这个编译

    int idx;
    int i;
    for (idx = 0, i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++)
    {
        anTestScores[idx] = i;
    }
    
    Run Code Online (Sandbox Code Playgroud)

YeP*_*IcK 7

跟着去

for (int idx = 0, i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++) { anTestScores[idx] = i; }
Run Code Online (Sandbox Code Playgroud)

这在循环的第一个语句中声明了两个 int类型的变量for.

其工作原因和您的其他尝试不符合以下原因:

每个声明语句必须通过a分隔;,但同样;用于分隔for(;;)循环标题的各个部分,因此您尝试使用','运算符绕过它.由于语法错误,哪个不起作用