为什么在VC中 for(int i = 0; i < 10; i++) 会报错?
vc6.0 win32 console application
for(int i = 0; i < 10; i++) 这么写会报错
error C2143: syntax error : missing '; ' before 'type '
比如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
for( int a = 1; a < 10; a++)
printf( "%d ", a);
}
但是如果改成
int main()
{
int a;
for( a = 1; a < 10; a++)
printf( "%d ", a);
}
就可以编译通过,不知道是什么原因,是设置的问题?
[解决办法]
不会吧 - -
[解决办法]
我的vc6可以运行
[解决办法]
我估计你把这段源程序存为了.c形式,比如test.c。在C中变量是要先定义再使用的,所以你这样for( int a = 1; a < 10; a++)是不行的。
如果你存为的是.cpp文件这段程序就没问题了。。
[解决办法]
检查一下源文件的后缀名,for( int a = 1; a < 10; a++)+)
在c++是允许的
[解决办法]
c语言不允许这样使用的,要先定义,养成良好的习惯,有助于代码的移植,有些系统对变量的定义要比windows严格得多,估计在windows下习惯了这样的话,会很不舒服。
[解决办法]
原因上面的都说了。我再补充一点:第二种风格其实要更好一些
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int main()
{
for( int a = 1; a < 10; a++)
printf( "%d ", a);
}
但是如果改成
int main()
{
int a;
for( a = 1; a < 10; a++)
printf( "%d ", a);
}
就可以编译通过,不知道是什么原因,是设置的问题?
-----------------------------------------------
不是设置的问题,是编译器支持不支持的问题。我在VC中就这样写就没问题,如bargio_susie(强制结帖) 所说,你最好检查一下你后缀名是.cpp 还是 .c
C99标准中规定了可以这样写for(int a=1; a <10; a++),但是真正支持这个标准的编译器并不多,你在TC下这样写就不行,因为它不支持这个标准。
[解决办法]
VC 中还是不要写 for( int a = 1; a < 10; a++) 了吧,
它和预期的有点差别...
直接写成
int a;
for( a = 1; a < 10; a++)
[解决办法]
嗯,同意虫子~