This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
http://bbs.21ic.com/icview-449764-1-1.html
switch语句反而比ifelse的执行效率要高。 switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。
准确的说,这个问题无法给出一个肯定的答复。因为不同的编译器会有不同的编译策略,有的编译器会对switch case做专门的优化,例如CCS。
一个通用的方法是,楼主使用两种方法实现,然后通过汇编或者运行时间来比较。
对于此问题,我是这样理解的,switch case相当于分支较多,但是到底是那一个,一开始不明确,此时if else的条件如果在最后,那switch效率相对较高,如果if条件就是直接的第一想,自然if高,if else就像是二分法的手段,一半不行再分一半,都有自己的有事和特点,怎么用,根据程序需要来选择。现在C语言编程,也没有必要考究的很严格,实现功能即可。