我有以下代码:

  #include<stdio.h>
  int main()
  {
      int a=10;
      switch(a)
      {
      case '1':
          printf("ONE\n");
          break;
      case '2':
          printf("TWO\n");
          break;
      defalut:
          printf("NONE\n");
      }
      return 0;
  }

该程序不打印任何内容,甚至不打印NONE。我发现default有一个错字defalut!
我想知道为什么编译器未检测到此语法错误。

最佳答案

defalut只是程序中的标签,您可以使用goto跳转到该标签。拥有突出显示关键字的编辑器可能会使此错误更容易发现。

我还要注意,您的程序可能存在一些逻辑错误。字符'1'1不同,并且与'2'2相同。

10-04 13:33