Предупреждение компилятора (уровень 4) C4389
"равенства-оператор" : подписанный или неподписанный несоответствие
Задействованные ==
signed
операции и !=
unsigned
переменные. Это может привести к потере данных.
Замечания
Одним из способов устранения этого предупреждения является приведение одного из двух типов при сравнении и unsigned
типахsigned
.
Пример
Следующий пример приводит к возникновению ошибки 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;
}
См. также
Предупреждение компилятора C4018
Предупреждение компилятора (уровень 4) C4388