Bagikan melalui


Compiler Warning (level 1) C4319

'~' : nol perpanjangan 'type1' ke 'type2' dengan ukuran yang lebih besar

Hasil operator ~ (pelengkap bitwise) tidak ditandatangani dan kemudian tidak diperpanjang ketika dikonversi ke jenis yang lebih besar.

Contoh

Dalam contoh berikut, ~(a - 1) dievaluasi sebagai ekspresi panjang 32-bit yang tidak ditandatangani lalu dikonversi menjadi 64 bit dengan ekstensi nol. Ini dapat menyebabkan hasil operasi yang tidak terduga.

// C4319.cpp
// compile with: cl /W4 C4319.cpp
int main() {
   unsigned long a = 0;
   unsigned long long q = 42;
   q = q & ~(a - 1);    // C4319 expected
}