Compiler Warning (level 4) C4389
'equality-operator' : ketidakcocokan yang ditandatangani/tidak ditandatangani
Operasi ==
atau !=
yang terlibat signed
dan unsigned
variabel. Ini dapat mengakibatkan hilangnya data.
Keterangan
Salah satu cara untuk memperbaiki peringatan ini adalah jika Anda melemparkan salah satu dari dua jenis saat Anda membandingkan signed
dan unsigned
jenis.
Contoh
Sampel berikut menghasilkan C4389:
// C4389.cpp
// compile with: cl /EHsc /W4 C4389.cpp
int main()
{
int a = 9;
unsigned int b = 10;
int result = 0;
if (a == b) // C4389
result = 1;
else
result = 2;
if (unsigned(a) == b) // OK
result = 3;
else
result = 4;
return result;
}