在 C 语言中, goto 语句最常见的用法是:1)终止程序在某些深度嵌套的结构中的处理,2)集中进行错误处理。标签的命名同变量命名的形式一致,标签后面要紧跟一个冒号。
标签的使用具有以下特点:
- 标签可以位于对应的 goto 语句所在函数的任何语句的前面
- 标签的作用域是整个函数
- 同一函数内的标签名不可重复
- 相同的标签名可以出现在不同的函数内
以下展示了几种正确和错误的用法:
void test(void)
{
/* xxx */
goto label_1; // ok!
label_0:
/* xxx */
label_1:
/* xxx */
goto label_0; // ok!
/* xxx */
goto label_2; // error!
}
void test2(void)
{
label_1: // ok!
/* xxx */
label_2:
/* xxx */
label_3:
/* xxx */
label_3: // error!
/* xxx */
}