我的代码一直生成错误: 错误C2065:'i':在C中迭代时未声明的标识符
这是它特别抱怨的部分:
for (int i = 0; i < (gamesToPlay); i++)
{
printf("You are now playing game %d\n", i);
}
我做错了什么吗?我正在使用带有.c文件的VS 2010进行编译。
答案 0 :(得分:7)
Visual Studio 2010仅支持C89,而不支持C99。在C89中,必须在块的开头声明变量,如下所示:
void foo(void)
{
int i;
for (i = 0; i < gamesToPlay; i++)
{
//do something
}
}
答案 1 :(得分:1)
在i
for
int i;
for (i = 0; i < (gamesToPlay); i++)
{
printf("You are now playing game %d\n", i);
}
答案 2 :(得分:1)
for
语句中的第一个表达式可以是C99中引入的声明。 VS 2010不支持C99,这就是您收到此错误的原因。如在C89中那样在块的开头声明i
int i;
...
for (i = 0; i < (gamesToPlay); i++)
{
printf("You are now playing game %d\n", i);
}