2015-08-24 54 views
1

我创建了一个for循环中的C,这应该工作,但是Eclipse的告诉我,我用了一个未声明的变量,这里是我的代码:根据Eclipse的未声明的变量,而已经宣布

#include <stdio.h> 

int main(int argc, char ** argv) { 
for(int i = 1; i <= 5; ++i) { 
    printf("i is %d\n", i); 
} 
return 0; 
} 

未声明的变量iprintf行上它已在for声明中声明的权限?这段代码与我在下面的教程中使用的完全一样,但它在视频中工作。

+5

你的编译器可能是以下C89的规则,在那里你必须声明变量在新块开始之后{看你是否可以配置eclipse来使用C​​99或者把int i;在main()后面{ –

+1

感谢robin.koch!将Eclipse改为使用C99确实有效。 – Jesse

回答

3

在ANSI C中(与C90/C11不同),不能在for循环中声明变量。您可惜的是有这个(或更改编译器更现代的一个,你会不会与ANSI标准兼容尽管):

int main(int argc, char ** argv) { 
int i; 
for(i = 1; i <= 5; ++i) { 
    printf("i is %d\n", i); 
} 
return 0; 
}