Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"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;
}