Рассмотрим следующий код:
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
быть опущены? - Какая оптимизация компилятора?