21.01.2015 Views

第7回(6/4)

第7回(6/4)

第7回(6/4)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

TORU WAKAHARA<br />

・ビットフィールド 構 造 体 の 便 利 な 機 能 として,ビット 単 位 でデータを 取 り 扱 うことが<br />

できるビットフィールドがある。<br />

構 造 体 メンバとしてビットフィールドを 定 義 するには 次 の 書 式 を 用 いる。<br />

型 名 前 :サイズ;<br />

但 し,「 型 」は int または unsigned<br />

signed の 場 合 , 最 上 位 ビットは 符 号 ビットと 見 なされる。<br />

移 植 可 能 にするには,signed あるいは unsigned と 明 示 的 に 指 定 すべきである。<br />

「サイズ」はフィールドでのビット 数<br />

ビットフィールドを 参 照 するには, 通 常 の 構 造 体 と 同 じように「.」または<br />

「->」 演 算 子 によってメンバを 指 定 する。<br />

例 .ビットフィールドと 他 の 型 を 混 在 させることが 可 能 であり,またバイトやワードのす<br />

べてのビットが 埋 まるように 定 義 する 必 要 はない。<br />

struct b_type {<br />

char name[40]; /* 品 目 名 */<br />

unsigned int instock: 1; /* 在 庫 があれば 1, 在 庫 切 れなら 0 */<br />

unsigned int backordered: 1; /* 未 納 注 文 であれば 1, 納 品 済 みなら 0 */<br />

unsigned int lead_time: 3; /* 発 注 から 納 品 までの 月 数 (7 ヶ 月 まで) */<br />

} inv[MAX_ITEM];<br />

注 )メモリのアドレス 可 能 な 最 小 単 位 はバイトであるため,ビットフィールド 変 数 の<br />

アドレスを 得 ることはできない。<br />

ビットフィールドには,ブール( 真 / 偽 ) 型 のデータを 格 納 することがよくある。<br />

1 バイトに 8 個 のブール 型 の 値 を 格 納 できる。

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!