結構體可以用來實現位段, 在c語言中多數情況下按照乙個位元組的整數倍為單位處理資料, 也就是必須是以8位為單位處理資料, 比如乙個char為8位, 乙個int可能為32位. 位段使我們可以按 「任意」 位處理資料, 比如7位, 6位等.
位段的宣告如下:
// 位段宣告
// [型別] [識別符號] : [位寬表示式]
struct char ;
struct char character;
關於位段要注意:
由上面的分析可以看出位段的可移植性差但是提高了位操作的便捷性(任何位段實現的任務都可以通過移位和遮蔽來實現), 程式設計中需要做一些權衡.
C語言之位段使用詳解
在前面各章中,我們已經討論過位元組概念了。在大多數的計算機系統中,乙個位元組是由八個更小的,稱作為位的單位組成的。位是比位元組更小的單位。位只有兩個值,1 或 0 因此,儲存在計算機儲存器中的乙個位元組可以看成由八個二進位制數字形成的串。例如,乙個存放值 36 的位元組是八個二進位制數字的串 可以表...
C語言之位段 節省空間 防備忘
在表示微控制器的控制位的某些時,有時乙個位元組佔用不完。只用到幾個位既可以表示。有時候,會用到位段這種資料結構 1 常規用法 typedef struct student stu intmain 結果輸出為8。int d佔4個位元組。a b c佔6位,再位元組對其,一共佔4個位元組。故一共8個位元組...
c語言 位段
位段 位段的宣告和結構是類似的,有兩個不同 1 位段的成員必須是int unsigned int char 或 signed int。2 位段的成員後邊有乙個冒號和乙個數字。例子 include include struct a struct b struct c int main 經過 驗證 1 ...