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