为什么我的 gcc 编译器在 return 0 后使用 break 时不会发出错误? KNK问题

问题描述

在 K.N.King 的《C 编程》一书中,

...

case 3: printf("Current balance: $%.2f\n",balance); 
        break;
case 4: return 0;
default: printf("Commands: ...");
         break;

...

请注意 return 语句后面没有 break 语句。 永远不会在返回后立即执行中断,并且许多编译器会发出警告消息。

我预计我的编译器(通常是 GCC)会发出警告消息,所以我特意在我的程序中在 return 语句之后使用了 break 语句为 0,如下所示。

case  4:  printf("Exit the program\n");
    return 0;
    break;      /*** My gcc compiler doesn't issue any error ***/

但我的编译器没有发出如下错误信息。

C:\Users\user>gcc -Wall -w -o balance balance.c
/* normally compiled */

我的 GCC 编译器有问题吗? 如果不是,K.N.K 的书是否没有反映最新的编译器版本?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)