Avviso del compilatore (livello 4) C4389
'equality-operator': mancata corrispondenza con segno/senza segno
Operazione ==
o !=
interessata signed
da variabili e unsigned
. Ciò potrebbe comportare una perdita di dati.
Osservazioni:
Un modo per correggere questo avviso è se si esegue il cast di uno dei due tipi quando si confrontano signed
i tipi e unsigned
.
Esempio
L'esempio seguente genera l'errore 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;
}
Vedi anche
Avviso del compilatore C4018
Avviso del compilatore (livello 4) C4388