Будет ли бит-сдвиг на ноль бит работать правильно?
Скажем, у меня есть такая функция:
inline int shift( int what, int bitCount )
{
return what >> bitCount;
}
Он будет вызываться с разных сайтов каждый разbitCount
будет неотрицательным и в пределах числа битов вint
, Я особенно обеспокоен звонком сbitCount
равен нулю - будет ли он работать правильно тогда?
Также существует вероятность того, что компилятор, увидевший весь код функции при компиляции своего сайта вызовов, уменьшит количество вызовов сbitCount
равно нулю, чтобы не-оп?