日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言-位段详解

發(fā)布時間:2023/12/31 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言-位段详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.位段的定義:

位段是定義結(jié)構(gòu)體(或聯(lián)合體)中的成員變量所占的空間,單位是bit。含有位段的結(jié)構(gòu)體(聯(lián)合體)稱為位段結(jié)構(gòu)。

2.位段的意義:

能夠節(jié)省空間。比如性別,2個bit位可以表示2^2=4種可能性,不需要一個整形32個bit位。

3.位段相對于結(jié)構(gòu)體的限制:

位段的聲明跟結(jié)構(gòu)體相比,有兩個限制:

1.位段的成員必須是整形家族的,如int,unsigned int或signed int或char類型的,因此位段大小必須<=32bit

2.位段的成員名后邊有一個冒號和一個數(shù)字

4.位段的內(nèi)存分配:

1.位段在內(nèi)存空間上是按照需要以4個字節(jié)(int)或者1個字節(jié)(char)的方式來開辟的。

2.位段設(shè)計很多不確定的因素,位段是不跨平臺的,注重可移植的程序應(yīng)該避免使用段位

位段舉例,如:

struct S {char a : 3; //a成員占3個比特位char b : 4; //b成員占4個比特位char c : 5; //c成員占5個比特位char d : 4; //d成員占4個比特位 };int main() {struct S s = { 0 };s.a = 10;s.b = 12;s.c = 3; s.d = 4;return 0; }

結(jié)構(gòu)體變量s的成員bit位使用:

a占3個bit位,但10的二進制有4個bit位1010,要存入3個bit位,低3位存入010,高1位丟棄

b占4個bit位,12的二進制有4個bit位1100,剛好可以存入4個bit位

c占5個bit位,3的二進制有2個bit位11,可以存入5個bit位

d占4個bit位,4的二進制有3個bit位100,可以存入4個bit位

使用VS2019編譯,F10調(diào)試,監(jiān)視內(nèi)存,輸入&s,內(nèi)存中存入的就是62 03 04

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的C语言-位段详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。