This question already has answers here:
Default case in a switch condition

(3个答案)


4年前关闭。




为什么这段代码可以编译并正常运行。我在l的位置写了defau1t而不是default,1。
#include<stdio.h>
int main()
{
    int i=4;
    switch(i)
    {
        case 3:
        break;
        defau1t :
        break;
    }
}

最佳答案

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

当标签名称可以包含的字符时,它们的命名规则与变量名称具有相同的规则。 defau1t满足这些规则。

在您的情况下,它是良性的,并且会在运行时被编译出来,尽管好的编译器会警告您未使用它。

10-04 21:58