是编译器错误还是c语言功能?

qst*_*emp 4 c winapi hyperlink cl.exe

我的环境是windows xp sp3 +'Microsoft(R)32位C/C++优化编译器版本14.00.50727.762 for 80x86',流程如下:

F:\ workshop\vc8proj\console>输入tc

int main(void) {

    // Do some thing.
    {
        int i;
        {
            i = 3;
            goto abc111;
        }

        abc111:
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

F:\ workshop\vc8proj\console> cl/MD tc Microsoft(R)32位C/C++优化编译器版本14.00.50727.762 for 80x86

版权所有(C)Microsoft Corporation.版权所有.

tc tc(10):错误C2143:语法错误:缺少';' 之前'}'

F:\ workshop\vc8proj\console> vim tc

F:\ workshop\vc8proj\console>输入tc

int main(void) {
    // Do some thing.
    {
        int i;
        {
            i = 3;
            goto abc111;
        }

        abc111: 5201314;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

F:\ workshop\vc8proj\console> cl/MD tc Microsoft(R)32位C/C++优化编译器版本14.00.50727.762 for 80x86

版权所有(C)Microsoft Corporation.版权所有.

tc Microsoft(R)增量链接器版本8.00.50727.762版权所有(C)Microsoft Corporation.版权所有.

/out:t.exe t.obj

F:\车间\ vc8proj \控制台>

在Linux操作系统下同样的情况呢???

Dan*_*her 10

这是一种语言功能.标签只能是带标签的语句的一部分,并且该语句需要终止;.只需在标签后面加一个分号即可.

int main(void) {

    // Do some thing.
    {
        int i;
        {
            i = 3;
            goto abc111;
        }

        abc111: ;

    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

也有效.