Freigeben über


Compilerwarnung (Ebene 4) C4389

"Gleichheitsoperator" : signiert/nicht signierte Nichtübereinstimmung

An == oder != Operation beteiligt signed und unsigned Variablen. Dies kann zu einem Datenverlust führen.

Hinweise

Eine Möglichkeit, diese Warnung zu beheben, ist, wenn Sie einen der beiden Typen beim Vergleichen und unsigned Typen umwandelnsigned.

Beispiel

Im folgenden Beispiel wird C4389 generiert:

// 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;
}

Weitere Informationen

Compilerwarnung C4018
Compilerwarnung (Ebene 4) C4388