|
发表于 2009-8-12 16:40:20
|
显示全部楼层
来自 中国–湖南–株洲
CASE只计算一次值 然后都是test,jmp, if...else 是每个条件都要计算一遍的.
不过这种高效率 没什么用 差别也不是很大 LZ应该从你的算法和机器上下手 才能真正提高
总的来说if...else和switch的实现不一样;
编译完后,if...else是一条比较指令;
swtich是一张地址表。
这里扯远一点,如果用switch的话,case里的值最好步进为一,因为汇编会用case的值做表的索引,步进小的话越好处理;一般处理是用枚举来定义case的值,然后再case中引用; |
|