在一个工程项目中,有时候我们经常会用到许多状态标志位。很多时候我们会去程序中定义这些变量,而这些变量往往占用了一个字节(byte),然而我们需要的仅仅是一个状态位(bit)。这样去定义变量不仅浪费了存储空间,而且不利于变量管理。下面,介绍一种使用位域的方法定义状态标志的方法://定义联合体,同时命名别名为function
本文引用地址:https://www.eepw.com.cn/article/201611/321954.htmtypedef union
{
u8 flagByte;
struct
{
u8 b0:1;
u8 b1:1;
u8 b2:1;
}bits;
}function;
function myflag;//定义联合体变量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;
}
评论