¿Funcionará correctamente el desplazamiento de bit por cero bits?
Di que tengo una función como esta:
inline int shift( int what, int bitCount )
{
return what >> bitCount;
}
Se llamará desde diferentes sitios cada vez quebitCount
no será negativo y estará dentro del número de bits enint
. Me preocupa especialmente la llamada conbitCount
igual a cero, ¿funcionará correctamente entonces?
También existe la posibilidad de que un compilador que vea el código completo de la función al compilar su sitio de llamadas reduzca las llamadas conbitCount
igual a cero para un no-op?