Dela via


Kompilatorvarning (nivå 4) C4389

"equality-operator" : signerad/osignerad missmatch

Anmärkningar

En ==- eller !=-operation som involverade signed- och unsigned-variabler. Detta kan leda till dataförlust.

Ett sätt att åtgärda den här varningen är om du kastar en av de två typerna när du jämför signed och unsigned typer.

Example

I följande exempel genereras 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;
}

Se även

Kompilatorvarning C4018
Kompilatorvarning (nivå 4) C4388