位段

1、位段的來源

信息的存取一般以字節爲單位。實際上,有時存儲一個信息不必用一個或多個字節,例如,“真”或“假”用0或1表示,只需1位即可。

2、使用方法

C語言允許在一個結構體中以位爲單位來指定其成員所佔內存長度,利用位段能夠用較少的位數存儲數據。

3、具體例子

typedef struct BitSection_tag
{
unsigned int a : 1;
unsigned int   : 1;//無名字段
unsigned int b : 6;
unsigned int   : 0;//填充字段
unsigned int c : 4;
}BitSection;
解釋:a佔1位,接着無名字段佔1位,不能訪問,b佔6位,接着是填充字段,填充一個存儲單元剩餘位,c開始使用下一個存儲單元。所以sizeof(BitSection) = 8。

4、注意事項

(1)位段成員的類型必須指定爲unsigned int或int類型。

(2)一個位段必須存儲在同一存儲單元中,不能跨兩個單元。

(3)位段定義的第一個位段長度不能爲0。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章