編譯器警告 (層級 4) C4389
'equality-operator' : 帶正負號/不帶正負號不符
==
涉及或 !=
作業signed
和unsigned
變數。 這可能會導致數據遺失。
備註
修正此警告的其中一個方法是,當您比較 signed
和 unsigned
類型時,將其中一個類型轉換成其中一種。
範例
下列範例會產生 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;
}