コンパイラの警告 (レベル 4) C4389
'equality-operator' : 符号付き/符号なしが一致しません
==
または !=
演算に signed
および unsigned
変数が関係しています。 この結果、データが失われる可能性があります。
解説
この警告を修正する 1 つの方法は、signed
型と unsigned
型を比較するときに、2 つの型の一方をキャストする場合です。
例
次の例では 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;
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示