我的环境是windows xp sp3 +'Microsoft(R)32位C / C ++优化编译器版本14.00.50727.762(适用于80x86'),流程如下:
F:\ workshop \ vc8proj \ console>输入t.c
int main(void) {
// do some thing.
{
int i;
{
i = 3;
goto abc111;
}
abc111:
}
return 0;
}
F:\ workshop \ vc8proj \ console> cl / MD t.c Microsoft(R)32位C / C ++ 针对80x86优化编译器版本14.00.50727.762
版权所有(C)Microsoft Corporation。保留所有权利。
t.c t.c(10):错误C2143:语法错误:缺少';'在'}'之前
F:\ workshop \ vc8proj \ console> vim t.c
F:\ workshop \ vc8proj \ console>输入t.c
int main(void) {
// do some thing.
{
int i;
{
i = 3;
goto abc111;
}
abc111: 5201314;
}
return 0;
}
F:\ workshop \ vc8proj \ console> cl / MD t.c Microsoft(R)32位C / C ++ 针对80x86优化编译器版本14.00.50727.762
版权所有(C)Microsoft Corporation。保留所有权利。
t.c Microsoft(R)增量链接器版本8.00.50727.762版权所有 (C)Microsoft Corporation。保留所有权利。
/out:t.exe t.obj
F:\车间\ vc8proj \控制台>
在Linux操作系统下同样的情况呢???
答案 0 :(得分:10)
这是一种语言功能。标签只能是标记语句的一部分,并且该语句需要终止;
。只需在标签后面加一个分号即可。
int main(void) {
// do some thing.
{
int i;
{
i = 3;
goto abc111;
}
abc111: ;
}
return 0;
}
也有效。
答案 1 :(得分:1)
这是语言功能。必须有一份我们提到的声明标签。
如果标签后没有声明,那么只需输入';'终止语句,或者只能在标签后写回复语句。