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
}