神奇的C语言八:慎用switch

来源:互联网 发布:如何写js插件 编辑:程序博客网 时间:2024/05/18 01:24

C语言是比较底层的语言,和机器指令很接近。

switch结果翻译出的机器指令序列的跳转格式是固定的,会逐个尝试所有case,直到找到,或者switch结束。

例子:

int a = 88;switch(a){a = 99;case 88: printf("%d\n", a); break;case 99: printf("%d\n", a); break;default: break;}


会最终输出什么呢?是88。


a = 99并没有被执行,因为进行switch之后接下来就是case匹配,找到了case 88就进行了case 88的代码去执行了。


执行到哪里结束呢?需要程序员指定结束位置,例如通过break来结束。如果没有指定,就会按照指令的顺序一次一直执行下去。


如果当初设计的时候,生成代码时自动在每个case的代码段后加入跳出switch的指令,会省去很多麻烦事儿的 :)

0 0
原创粉丝点击