警告 C6285
('non-zero constant' ||'non-zero constant') は常に 0 以外の定数です。 ビットごとの and 演算子を使用するつもりでしたか?
この警告は、テキスト コンテキストで行われる論理 or 演算の引数として、両方とも 1 より大きい 2 つの定数値が検出されたことを示しています。 この式は常に TRUE です。
解説
1 より大きい定数値は、論理 or の引数がビット フィールドである可能性があることを示しています。 このケースではビットごとの演算子がより適切な演算子である可能性があるかどうかを検討してください。
コード分析名: LOGICALOROFCONSTANTS
例
この警告が発生するコード例を次に示します。
#include <stdio.h>
#define TESTED_VALUE 0x37
#define MASK 0xaa
void f()
{
if (TESTED_VALUE || MASK)
{
puts("(TESTED_VALUE || MASK) True");
// code ...
}
else
{
puts("(TESTED_VALUE || MASK) False");
// code ...
}
}
この警告を解決するには、次のコードを使用します。
#include <stdio.h>
#define TESTED_VALUE 0x37
#define MASK 0xaa
void f(int flag)
{
if ((TESTED_VALUE & MASK)== flag)
{
puts("true");
// code ...
}
else
{
puts("false");
// code ...
}
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示