重複の可能性:
「unsigned temp:3」とはどういう意味ですか?
int のような構文に出くわしvariable:4;
ましたが、この構文の意味を誰か教えてもらえますか?
struct abc
{
int a;
int b:2;
int c:1;
};`enter code here`
重複の可能性:
「unsigned temp:3」とはどういう意味ですか?
int のような構文に出くわしvariable:4;
ましたが、この構文の意味を誰か教えてもらえますか?
struct abc
{
int a;
int b:2;
int c:1;
};`enter code here`
構造体のビットフィールドの幅を定義します。ビットフィールドは整数値を保持しますが、その長さは特定のビット数に制限されているため、制限された範囲の値しか保持できません。
あなたが投稿したコードでは、構造体a
は32ビット整数でb
あり、2ビットビットフィールドでc
あり、1ビットビットフィールドです。
ビットフィールドです。b の完全な整数を格納する代わりに、2 ビットのみを格納するため、b は -2、-1、0、および 1 の値を持つことができます。同様に、c は -1 と 0 の値のみを持つことができます。
使用しているコンパイラのバージョンによっては、符号拡張は少し予測できず、一部のシステムでは、これらの値が 0、1 2 および 3 または 0 および 1 として表示される場合があります。
これにより、フィールドが整数未満にパックされますが、これも実装で定義された方法であり、実際に使用されるメモリの量やメモリ内のデータの順序について仮定しないことをお勧めします。