警告 C6299
ビット フィールドをブール型と明示的に比較すると、予期しない結果が得られます
解説
この警告は、ブール値とビット フィールドが同値であるという誤った想定を示しています。 ビット フィールドに 1 を割り当てると、1 つのビットに 1 が配置されます。ただし、このビット フィールドを 1 と比較すると、符号付き整数へのビット フィールドの暗黙的なキャストが含まれます。このキャストは、格納されている 1 を -1 に変換し、比較によって予期しない結果が生成される可能性があります。
コード分析名: BITFIELD_TO_BOOL_COMPARISON
例
この警告が発生するコード例を次に示します。
struct myBits
{
short flag : 1;
short done : 1;
//other members
} bitType;
void f( )
{
if (bitType.flag == 1)
{
// code...
}
}
この警告を解決するには、次のコードに示すようにビット フィールドを使用します。
void f ()
{
if(bitType.flag==bitType.done)
{
// code...
}
}
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示