VS2010错误:error C2143: 语法错误 : 缺少“;”(在“类型”的前面)

22,933次阅读
3 条评论

共计 259 个字符,预计需要花费 1 分钟才能阅读完成。

提醒:本文最后更新于2012-05-08 04:44,文中所关联的信息可能已发生改变,请知悉!

在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); }}

正文完
 0
任侠
版权声明:本站原创文章,由 任侠 于2011-01-14发表,共计259字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(3 条评论)
验证码
xulongwood
2012-06-18 21:04:37 回复

[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试试

     中国北京北京市电信
_ha_ha
2012-05-02 01:25:02 回复

{
int j;
for(j=0;j<6;j++)
{
int n=1;
printf("%d",n);
}
}
这不能在vs2010编译通过?纯粹扯淡……
[reply=任侠,2012-05-07 08:56 PM]个人不严谨的错误,已更正反应的问题,多谢批评指正[/reply]

     中国北京北京市教育网
威言威语 评论达人 LV.4
2011-01-15 21:14:06 回复

我也学过C,C++,不过学的不好~
[reply=任侠,2011-01-16 07:32 AM]额,俺以为你写代码的,你说自己学的不好~[/reply]

     中国上海上海市电信