Advertencia del compilador (nivel 4) C4389
'equality-operator': error de coincidencia con/sin signo
Una operación ==
o !=
implicó variables signed
y unsigned
. Esto podría ocasionar la pérdida de datos.
Comentarios
Una manera de corregir esta advertencia es convertir uno de los dos tipos al comparar los tipos signed
y unsigned
.
Ejemplo
El siguiente ejemplo genera la advertencia 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;
}
Consulte también
Advertencia del compilador C4018
Advertencia del compilador (nivel 4) C4388