2017-07-20 12 views
3

"-Wsigned-enum-bitfield" Clang警告の意味を教えてください。私のコードでClang警告の意味 "-Wsigned-enum-bitfield"

私はビットフィールドでstructの定義を持っている:

struct Options { 
    BackgroundType backgroundType : 2; 
    LineSpace lineSpace : 2; 
    bool letterSpacing : 1; 
    bool shadow : 1; 
    Qt::AlignmentFlag alignment : 9; 
} options; 

options.alignment = Qt::AlignLeft; 

クランでこのコードをコンパイルすると、私は次の警告を得る:マイクロソフトABIで

列挙型を既定では符号付き整数です。列挙型Qt::AlignmentFlagポータブル

列挙Qt::AlignmentFlagにこのコードを作るための符号なしの基本となる型を付与 が私のコードの外部にある、と私はそれを変更することはできません考えます。私はこの警告を無視する傾向があります。このコードをそのまま残してしまうとどうなるのでしょうか?

+0

@BoPersson回答としてご提供ください。 –

+0

私は提案された複製がすでにそのシナリオを示していると思います。 –

答えて

1

enumがすべての9ビットを使用する場合は、それを読み取るときに負の数が返されます。他の値と比較するときに問題が発生する可能性があります。

関連する問題