書いてはいけない理由を探していた
struct bitfield {
signed foo:4;
unsigned bar:2;
};
冗長に指定する代わりに
struct bitfield {
signed int foo:4;
unsigned int bar:2;
};
ビットフィールドの各メンバーのサイズはコロンの後に明示的に指定されているため、欠点はありますか?
char
、short
、long
、を使用しても問題ありlong long
ませんか? 指定されたビットフィールドのビット数は、おそらく常に宣言型の幅よりも小さい必要がありますか?
関連する質問がいくつか見つかりました:
答えは次のとおりです。
int
(signed/unsigned)または_Bool
and以外の型を使用しないでください_Bool
、signed int
、unsigned int
、またはその他の実装定義型。(C99 6.2.7.1 (4) )
このコンテキストでは、この非特定の他の実装定義型はどのようなものであり、この場所での私の選択からどのような他の欠点が生じる可能性がありますか?