C言語 struct bit ビットフィールド
Angie An
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* ビットフィールドを宣言 */
struct bit{
unsigned int b1 : 1;
unsigned int b2 : 2;
unsigned int b3 : 3;
unsigned int b4 : 4;
unsigned int b5 : 5;
};

struct
{
unsigned int widthValidated : 1;
unsigned int heightValidated : 1;
} status;


位域列表的形式为:

type [member_name] : width ;

下面是有关位域中变量元素的描述:

元素 描述
type 只能为 int(整型),unsigned int(无符号整型),signed int(有符号整型) 三种类型,决定了如何解释位域的值。
member_name 位域的名称。
width 位域中位的数量。宽度必须小于或等于指定类型的位宽度。

通常はバイト単位でしか変数を使えませんが、
これをビット単位で処理可能にする機能がビットフィールドです。

キーワードは、構造体と同じく struct を使います。
記述法は、変数名の後に、コロンで区切って確保するビット数を指定します。

確保される領域は、データ型の大きさによって変わります。

また、プログラム内での使い方は、構造体と同じです。

 Comments