Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
'operator': resultado del desplazamiento de 32 bits convertido implícitamente a 64 bits (¿se esperaba un desplazamiento de 64 bits?)
Observaciones
El resultado del desplazamiento de 32 bits se convirtió en 64 bits y el compilador sospecha que se esperaba un desplazamiento de 64 bits. Resuelva esta advertencia mediante un desplazamiento de 64 bits. Si un desplazamiento de 32 bits es intencionado, convierta el resultado del desplazamiento en 32 bits para que sea claro para el compilador.
Ejemplo
En el ejemplo siguiente se genera la advertencia C4334.
// C4334.cpp
// compile with: /W3 /c
void SetBit(unsigned __int64 *p, int i) {
*p |= (1 << i); // C4334, 32-bit shift cast to 64-bit
*p |= (1i64 << i); // OK, 64-bit shift
*p |= static_cast<int>(1 << i); // OK, 32-bit shift saved to 64-bit result
*p |= static_cast<__int64>(1) << i; // OK, 64-bit shift
}