1

以下を含む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を使用したいと思います。

ここでの私の質問は、この警告が表示される理由と解決方法です。

4

3 に答える 3

0

これは Klocwork 10 のバグのようです。これを例外としてテスト出力に追加します。返信ありがとう

于 2015-02-02T12:00:18.877 に答える