Compartir vía


Advertencia del compilador (nivel 1) C4311

'variable' : truncamiento de puntero de 'tipo' a 'tipo'

Esta advertencia detecta problemas de truncamiento de puntero de 64 bits. Por ejemplo, si el código se compila para una arquitectura de 64 bits, el valor de un puntero (64 bits) se truncará si se asigna a un int (32 bits). Para obtener más información, vea Reglas para usar punteros.

Para obtener información adicional acerca de las causas comunes de la advertencia C4311, vea Errores comunes del compilador.

En el ejemplo de código siguiente se genera la advertencia C4311 cuando se compila para un destino de 64 bits; a continuación, se muestra cómo corregirlo:

// C4311.cpp
// compile by using: cl /W1 C4311.cpp
int main() {
   void* p = &p;
   unsigned int i = (unsigned int) p;   // C4311 for 64-bit targets
   unsigned long long j = (unsigned long long) p;   // OK
}