Partager via


Avertissement du compilateur (niveau 4) C4389

'equality-operator' : incompatibilité signée/non signée

Notes

Une == ou != une opération impliquée signed et unsigned des variables. Cela peut entraîner une perte de données.

Une façon de corriger cet avertissement est si vous cassez l’un des deux types lorsque vous comparez et signed les unsigned types.

Exemple

L’exemple suivant génère l’erreur 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;
}

Voir aussi

Avertissement du compilateur C4018
Avertissement du compilateur (niveau 4) C4388