Aviso do compilador (nível 1) C4311

'variable': truncamento de ponteiro de 'type' para 'type'

Este aviso detecta problemas de truncamento de ponteiro de 64 bits. Por exemplo, se o código for compilado para uma arquitetura de 64 bits, o valor de um ponteiro (64 bits) será truncado se ele for atribuído a um int (32 bits). Para obter mais informações, confira Regras para usar ponteiros.

Para obter informações adicionais sobre causas comuns do aviso C4311, consulte Erros comuns do compilador.

O exemplo de código a seguir gera C4311 quando compilado para um destino de 64 bits e demonstra como corrigi-lo:

// 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
}