" defau1t:" (NOT"默认值:")是标签的有效值?

时间:2016-06-08 12:16:19

标签: c++ c

为什么这段代码编译运行正常。我在l的地方写了defau1t而不是默认值1。

#include<stdio.h>
int main()
{
    int i=4;
    switch(i)
    {
        case 3:
        break;
        defau1t :
        break;      
    }
}

2 个答案:

答案 0 :(得分:8)

defau1t :是有效的标签名称,即使它不是案例标签。

您可以在代码中的其他位置添加goto defau1t;

答案 1 :(得分:7)

它是标签的有效名称,您可以将其用作goto电话的占位符。 (并且通过switch调用进入goto区块在C和C ++中是允许的,即使它是不明智的。)

标签名称与它们可以包含的字符大致具有与变量名称相同的规则。 defau1t符合这些规则。

在你的情况下,它是良性的并且将在运行时编译出来,尽管一个好的编译器会警告你它没有被使用。