在一個(gè)工程項(xiàng)目中,有時(shí)候我們經(jīng)常會(huì)用到許多狀態(tài)標(biāo)志位。很多時(shí)候我們會(huì)去程序中定義這些變量,而這些變量往往占用了一個(gè)字節(jié)(byte),然而我們需要的僅僅是一個(gè)狀態(tài)位(bit)。這樣去定義變量不僅浪費(fèi)了存儲(chǔ)空間,而且不利于變量管理。下面,介紹一種使用位域的方法定義狀態(tài)標(biāo)志的方法://定義聯(lián)合體,同時(shí)命名別名為function
本文引用地址:http://m.butianyuan.cn/article/201611/321954.htmtypedef union
{
u8 flagByte;
struct
{
u8 b0:1;
u8 b1:1;
u8 b2:1;
}bits;
}function;
function myflag;//定義聯(lián)合體變量myflag
//變量操作
union _SYS_STATUS_
{
struct
{
unsignedm0: 1;
unsignedm1: 1;
unsignedm2: 1;
unsignedm3: 1;
unsignedm4: 1;
unsignedm5: 1;
unsignedm6: 1;
unsignedm7: 1;
unsignedi0: 1;
unsignedi1: 1;
unsignedi2: 1;
unsignedi3: 1;
unsignedi4: 1;
unsignedi5: 1;
unsignedi6: 1;
unsignedi7: 1;
};
struct
{
unsigned intsysStuAll;
};
}
externunion _SYS_STATUS_ sSysStatus;
void tempp()
{
myflag.flagByte=0;
myflag.flagByte=0xff;
myflag.bits.b0=0;
myflag.bits.b1=0;
}
評(píng)論