深入理解結(jié)構(gòu)體中占位符的用法
更新時(shí)間:2013年05月28日 12:15:00 作者:
本篇文章是對(duì)結(jié)構(gòu)體中占位符的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
復(fù)制代碼 代碼如下:
typedef union
{
struct x{
char a1 : 2;
char b1 : 3;
char c1 : 3;
}x1;
char c;
}my_un;
int main()
{
my_un a;
a.c = 100;
printf("%d/n",a.x1.c1);
printf("%d/n",sizeof(my_un));
return 0;
}
輸出結(jié)果:
3
1
即第一個(gè)是3, 而聯(lián)合體的大小為 1
分析:
sizeof為1表示1個(gè)字節(jié),結(jié)構(gòu)體中占位符冒號(hào)表示占的位數(shù),實(shí)際上還是3+3+2=8位就是1個(gè)字節(jié)
100--->01100100
共用體中結(jié)構(gòu)體的數(shù)據(jù)也為100.
a1占低2位(00);
b1占低3到5位(001);
c1占高3位(011);
因此a.x1.c1打印值為3.
sizeof(my_un);
共用體所占的字節(jié)大小取決于最大成員.它們都為1(結(jié)構(gòu)體所占比特位為2+3+3=8位,char型為1字節(jié)).
所以為1.
相關(guān)文章
C++實(shí)現(xiàn)線程池的簡(jiǎn)單方法示例
這篇文章主要給大家介紹了關(guān)于C++實(shí)現(xiàn)線程池的簡(jiǎn)單方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05C++解析特殊符號(hào)tab、換行符號(hào)實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于C++解析特殊符號(hào)tab、換行符號(hào)的相關(guān)資料,這個(gè)功能在我們?nèi)粘i_發(fā)中經(jīng)常會(huì)遇到,需要的朋友可以參考下2021-05-05C語(yǔ)言學(xué)習(xí)之鏈表的實(shí)現(xiàn)詳解
鏈表是一種物理存儲(chǔ)結(jié)構(gòu)上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。這篇文章主要介紹了C語(yǔ)言中鏈表的實(shí)現(xiàn),需要的可以參考一下2022-11-11用c語(yǔ)言實(shí)現(xiàn)和平精英的完整代碼
這篇文章主要介紹了用c語(yǔ)言實(shí)現(xiàn)和平精英的完整代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04C++中簡(jiǎn)單讀寫文本文件的實(shí)現(xiàn)方法
本篇文章是對(duì)C++中簡(jiǎn)單讀寫文本文件的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C 語(yǔ)言基礎(chǔ)之C 語(yǔ)言三大語(yǔ)句注意事項(xiàng)
今天講解的內(nèi)容,則是自己對(duì)于這三種語(yǔ)句一些細(xì)節(jié)的簡(jiǎn)單介紹,分支語(yǔ)句:if,switch、循環(huán)語(yǔ)句:while,for,do while、goto語(yǔ)句,感興趣的小伙伴可以參考下面具體的文章內(nèi)容2021-09-09