title | description | ms.date | f1_keywords | helpviewer_keywords | ||
---|---|---|---|---|---|---|
Compiler Warning (level 4) C4389 |
Learn more about: Compiler Warning (level 4) C4389 |
10/16/2020 |
|
|
'equality-operator' : signed/unsigned mismatch
An ==
or !=
operation involved signed
and unsigned
variables. This could result in a loss of data.
One way to fix this warning is if you cast one of the two types when you compare signed
and unsigned
types.
The following sample generates 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;
}