Tag: 拇指

if语句在模数之前和赋值操作之前是多余的吗?

考虑下一个代码: unsigned idx; //.. some work with idx if( idx >= idx_max ) idx %= idx_max; 可以简化为只有第二行: idx %= idx_max; 并会取得相同的结果。 有几次我遇到了下一个代码: unsigned x; //… some work with x if( x!=0 ) x=0; 可以简化为 x=0; 问题: 有没有任何意义, if和为什么? 尤其是使用ARM Thumb指令集。 难道这些if被忽略? 编译器做了哪些优化?