在VC6.0、DEV-CPP、GCC等下能顺利通过的C程序,在VS2010中总是出现如下错误提示:
error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
原因与解决方案:
纯c要求局部变量定义必须在函数或局部空间的开头,然后才能有其他语句。
纯c确实对变量声明的位置有要求,c++却可以随用随定义的。 说明vs是严格执行了纯C的标准。
变量任意定义是c99的标准。
/tc
/qstd=c99
两个参数,第一个, 指定当做 c语言来编译第二个,指定用c99 标准
比如你这样写,在vs2010中无法通过:
{
int j;
for(j=0;j<6;j++)
{
printf("%d",j);
int n=1;
printf("%d",n);
}
}
如下方式写,VS2010即可正常编译:
{
int j;
int n=1;
for(j=0;j<6;j++)
{
printf("%d",j);
printf("%d",n);
}
}
[quote=_ha_ha]{
int j;
for(j=0;j<6;j++)
{
int n=1;
printf("%d",n);
}
}
这不能在vs2010编译通过?纯粹扯淡……
任侠 于 2012-05-07 08:56 PM 回复
个人不严谨的错误,已更正反应的问题,多谢批评指正
板凳大侠在此断章取义了,楼主说的很明白,是在c里编译不通过,楼主可以将文件扩展名改为c试试
{
int j;
for(j=0;j<6;j++)
{
int n=1;
printf("%d",n);
}
}
这不能在vs2010编译通过?纯粹扯淡……
[reply=任侠,2012-05-07 08:56 PM]个人不严谨的错误,已更正反应的问题,多谢批评指正[/reply]
我也学过C,C++,不过学的不好~
[reply=任侠,2011-01-16 07:32 AM]额,俺以为你写代码的,你说自己学的不好~[/reply]