深入理解結構體中占位符的用法
更新時間:2013年05月28日 12:15:00 作者:
本篇文章是對結構體中占位符的用法進行了詳細的分析介紹,需要的朋友參考下
復制代碼 代碼如下:
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;
}
輸出結果:
3
1
即第一個是3, 而聯(lián)合體的大小為 1
分析:
sizeof為1表示1個字節(jié),結構體中占位符冒號表示占的位數(shù),實際上還是3+3+2=8位就是1個字節(jié)
100--->01100100
共用體中結構體的數(shù)據(jù)也為100.
a1占低2位(00);
b1占低3到5位(001);
c1占高3位(011);
因此a.x1.c1打印值為3.
sizeof(my_un);
共用體所占的字節(jié)大小取決于最大成員.它們都為1(結構體所占比特位為2+3+3=8位,char型為1字節(jié)).
所以為1.
相關文章
C語言中strcpy()函數(shù)的具體實現(xiàn)及注意事項
C語言庫函數(shù)char *strcpy(char *dest, const char *src)把src所指向的字符串復制到dest,下面這篇文章主要給大家介紹了關于C語言中strcpy()函數(shù)的具體實現(xiàn)及注意事項的相關資料,需要的朋友可以參考下2022-11-11
C++數(shù)據(jù)結構之鏈表的創(chuàng)建
這篇文章主要介紹了C++數(shù)據(jù)結構之鏈表的創(chuàng)建的相關資料,希望通過本文幫助到大家,讓大家理解掌握這部分內容,需要的朋友可以參考下2017-10-10

