为什么这段代码编译运行正常。我在l的地方写了defau1t而不是默认值1。
#include<stdio.h>
int main()
{
int i=4;
switch(i)
{
case 3:
break;
defau1t :
break;
}
}
答案 0 :(得分:8)
defau1t :
是有效的标签名称,即使它不是案例标签。
您可以在代码中的其他位置添加goto defau1t;
。
答案 1 :(得分:7)
它是标签的有效名称,您可以将其用作goto
电话的占位符。 (并且通过switch
调用进入goto
区块在C和C ++中是允许的,即使它是不明智的。)
标签名称与它们可以包含的字符大致具有与变量名称相同的规则。 defau1t
符合这些规则。
在你的情况下,它是良性的并且将在运行时编译出来,尽管一个好的编译器会警告你它没有被使用。