当尝试编译简单的c ++项目时,我收到以下错误:
syntax error : missing ';' before '{'
我做了我的研究。编译器不允许在for循环中声明变量,这对我来说非常不方便。 如果我在for循环之前声明循环变量,则错误消失。
这是一个带有" stdafx.h"的c ++项目。预编译头。
这个编译器行为(C89)是否由于我使用预编译的头文件或者我过去使用我的配置编写了一些内容而强制执行? 有没有办法绕过这个顾客?
P.S。我在Windows 7 64位上使用visual studio 2012;
代码示例:
错误在第一行
for (int idx = 0, int i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++)
{
anTestScores[idx] = i;
}
这个编译
int idx;
int i;
for (idx = 0, i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++)
{
anTestScores[idx] = i;
}
答案 0 :(得分:7)
使用
for (int idx = 0, i = 100; idx < (sizeof(anTestScores) / sizeof(int)); i++, idx++) { anTestScores[idx] = i; }
这在for
循环的第一个语句中声明了两个类型的变量。
这是有效的,而你的另一次尝试不是如下:
每个声明语句必须通过;
彼此分隔,但相同的;
用于分隔for(;;)
循环标题的各个部分所以你试图通过使用','运算符绕过它。由于语法错误而无法正常工作