在c/c++语言中,如果仅仅使用状态位。可以使用位域和联合一起来使用。但是要注意字节序问题。
例如在游戏里面可以使用 一个char 8bit 来表示8种状态。比如: 地图格式属性,BUFF状态。
{
unsigned char flag ;
struct
{
unsigned char b1:1;
unsigned char b2:1;
unsigned char b3:1;
unsigned char b4:1;
unsigned char b5:1;
unsigned char b6:1;
unsigned char b7:1;
unsigned char b8:1;
} ch;
BitField()
{
ch.b1 =1;
ch.b2 =1;
ch.b3 =1;
ch.b4 =1;
ch.b5 =0;
ch.b6 =0;
ch.b7 =0;
ch.b8 =0;
// flag =15;
}
};
(bfd).flag