最近更新于 2024-05-05 14:18
遇到这个问题通常是在 switch-case 中,如果在 case 语句中有定义变量,那么就要给这个 case 语句下加上大括号,否则就会出现“声明不能包含标签”的错误。
比如下面的情况就会出现这种错误
switch (a)
{
case 1:
int a = 0;
...
break;
...
default:
...
break;
}
解决改为下面的就行
switch (a)
{
case 1:
{
int a = 0;
...
break;
}
...
default:
...
break;
}
以前我最开始学习 C 语言的时候应该就遇到过这种情况,后面发现加大括号就没问题了,但是并没有发现本质错误所在,之后就全部 case 语句都加上大括号。现在差不多间隔一年没写 C 了,就懒得打大括号了,写了几天又碰到这种情况,查了一下才知道定义变量了就要加大括号,这里就顺便写了一下做个记录。
C 语言编译提醒”声明不能包含标签“的错误