需要帮助解决基于C的编程难题

tip*_*low 4 c puzzle

我在这里遇到了这个难题.我想不通为什么NONE不打印.有任何想法吗?

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

Fle*_*exo 15

defa1ut:是一个语法上有效的标签,例如,goto但不是 defaultswitch语句的标签.

如果使用gcc编译并提供足够的警告,则会指出这一点:

ajw @ rapunzel:/ tmp> gcc -Wall -Wextra test.c
test.c:在函数'main'中:test.c:13:15:警告:标签'defa1ut'已定义但未使用

这是一个很好的论据,可以建立警告,并在每个构建中瞄准0警告.