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

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

点赞 (5)
  1. xulongwood说道:

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

  2. _ha_ha说道:

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

  3. 威言威语说道:

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

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code