Bagikan melalui


Compiler Warning (level 1) C4311

'variabel' : pemotongan pointer dari 'type' ke 'type'

Peringatan ini mendeteksi masalah pemotongan pointer 64-bit. Misalnya, jika kode dikompilasi untuk arsitektur 64-bit, nilai pointer (64 bit) akan dipotong jika ditetapkan ke int (32 bit). Untuk informasi selengkapnya, lihat Aturan untuk Menggunakan Pointer.

Untuk informasi tambahan tentang penyebab umum peringatan C4311, lihat Kesalahan Kompilator Umum.

Contoh kode berikut menghasilkan C4311 saat dikompilasi untuk target 64-bit, lalu menunjukkan cara memperbaikinya:

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