深入理解結構體中占位符的用法
更新時間: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, 而聯合體的大小為 1
分析:
sizeof為1表示1個字節(jié),結構體中占位符冒號表示占的位數,實際上還是3+3+2=8位就是1個字節(jié)
100--->01100100
共用體中結構體的數據也為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++菱形繼承及解決方法詳解
這篇文章主要介紹了C++菱形繼承及解決方法詳解,在多繼承結構中,存在著很多問題,比如從不同基類中繼承了同名成員,派生類中也定義了同名成員,這種二義性問題很好解決,加上要訪問的基類的類名限制就可以了,需要的朋友可以參考下
2023-08-08
C++實現線程池的簡單方法示例
這篇文章主要給大家介紹了關于C++實現線程池的簡單方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
2020-05-05
C語言 格式化讀寫文件詳解
本文主要介紹C語言 格式化讀寫文件,這里提供了關于格式化讀寫文件的基本資料及實現示例代碼,有興趣的小伙伴可以參考下,以便理解學習
2016-08-08
C語言學習之鏈表的實現詳解
鏈表是一種物理存儲結構上非連續(xù)、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。這篇文章主要介紹了C語言中鏈表的實現,需要的可以參考一下
2022-11-11
用c語言實現和平精英的完整代碼
這篇文章主要介紹了用c語言實現和平精英的完整代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
2021-04-04
C 語言基礎之C 語言三大語句注意事項
今天講解的內容,則是自己對于這三種語句一些細節(jié)的簡單介紹,分支語句:if,switch、循環(huán)語句:while,for,do while、goto語句,感興趣的小伙伴可以參考下面具體的文章內容
2021-09-09
C語言圖文并茂講解分支語句用法
分支結構的執(zhí)行是依據一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在于構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句
2022-04-04