共用方式為


編譯器警告 (層級 4) C4389

'equality-operator' : 帶正負號/不帶正負號不符

==涉及或 != 作業signedunsigned變數。 這可能會導致數據遺失。

備註

修正此警告的其中一個方法是,當您比較 signedunsigned 類型時,將其中一個類型轉換成其中一種。

範例

下列範例會產生 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