条件として使用される割り当て
条件式のテスト値は、代入の結果です。
代入には、テスト式などの別の式で合法的に使用できる値 (代入の左側の値) があります。
次の例では C4706 が生成されます。
// compile with: /W4
int main()
{
int a = 0, b = 0;
if (a = b) // C4706
{
}
}
((
式))
で警告を抑制します。 例えば:
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ((a = b)) // No warning
{
}
}
関係をテストし、割り当てを行わない場合は、==
演算子を使用します。 たとえば、次の例では、a と b が等しいかどうかをテストします。
// compile with: /W4
int main()
{
int a = 0, b = 0;
if (a == b)
{
}
}
テスト値を割り当ての結果にする場合は、割り当てが 0 以外または null 以外であることを確認するテストを行います。 たとえば、次のコードではこの警告は生成されません。
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ((a = b) != 0)
{
}
}