以下を含むC++ コードがあります。
struct Struct
{
uint8_t varA : 1;
uint8_t varB : 1;
uint8_t varC : 1;
};
その上でKlocwork 10を実行すると、次の警告が表示されます。
CWARN.SIGNEDBIT (4:Review) Analyze
Bit field 'varA' has one bit and is signed
この構造体の他の変数についても同様です。 uint8_t は unsigned char typedefです。signed charを使用しようとすると、ここのような警告ではなく、エラーが発生します。unsigned intを使用すると問題は解決しますが、代わりにcharを使用したいと思います。
ここでの私の質問は、この警告が表示される理由と解決方法です。