C語言的位域使用
阿新 • • 發佈:2018-05-29
C語言位域 VC2015 通過聯合體,可以管理一個字節的每一個位,這樣是為了結省內存,充分利用字節中的信息。
union STATE { struct BITDATA { BOOL D0 : 1;//BOOL的取值範圍:0或-1 BOOL D1 : 1; BOOL D2 : 1; byte D3 : 1;//byte的取值範圍:0或1 byte D4 : 1; byte D5 : 1; byte D6 : 1; byte D7 : 1; }BIT;//須聲明一個變量 byte value; }; void CMFCApplication1Dlg::OnBnClickedButton4() { STATE sta; sta.value = 0x17;//整體賦值 BOOL a1 = sta.BIT.D0;//取出第一個位 sta.BIT.D0 = FALSE;//給第一個位賦值 //將值轉成字符串 CString str = sta.BIT.D0 ? _T("True") : _T("False"); }
位域常用來作為設備IO狀態管理或者權限管理。其實也可以用數組來代替上面的功能。
C語言的位域使用