#include "stdio.h"
int main(int argc, char* argv[]) {
int dec = 0, x = 2, y = 3;
switch(dec) {
case 0:
if (x == 2) {
if (y == 3)
break;
}
printf("Want to break to here\n");
}
printf("In fact break to here\n");
return 0;
}
|
我们先看一下上述代码,上述代码中程序员使用的break本意是想跳到第一条printf语句,但是由于break语句s实际上是跳出最近的那层循环语句或者switch语句,所以上述代码跳出了switch语句,执行了第二条printf语句。
历史上,AT&T实验室就是由于这样一个小小的BUG导致1990年的时候,导致了历史第一次重大的网络故障,事实上,网络信号系统的这个设计事务引起了一连串的反应,最终导致长话网络瘫痪了近9个小时。而这一切,都归因于C语言重一条switch语句。
阅读(1231) | 评论(0) | 转发(0) |