winnie 发表于 2009-3-27 14:27:11

关于BOOL量的一点应用。

/*bit型变量只能是全局的或静态的,
而有时我门在实际应用中既要改变某“位"变量的值;
又要保证这个函数的独立性;那不可避免的要把
这个函数做成有参函数,可是bit型变量是不能用做参数的;
那该咋办泥?还好!有位段。
看看:*/
/********************************************/
union FLAG
{
unsigned char BYTE;
struct
{
unsigned char b0:1;
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;
}bool;
};
/********************************************/
union      FLAG               mode;
#define    auto_bit         mode.bool.b0
#define    cool_bit         mode.bool.b1
#define    dar_bit         mode.bool.b2
#define    fan_bit         mode.bool.b3
#define    heat_bit         mode.bool.b4
#define    swing_bit   mode.bool.b5
#define    bed_bit      mode.bool.b6
#define    time_bit         mode.bool.b7
/********************************************/
void mode_task(in_mode)
union FLAG *in_mode;
{
in_mode -> bool.b0=1;
in_mode -> bool.b5=1;
/*也可这样写
in_mode -> BYTE|=0x21;*/
}
/********************************************/
void main(void)
{
mode.BYTE=0X00;
while(1)
{
   mode_task(&mode);
}
}
/********************************************/
这样写多爽!
这里涉及了结构,联合,位段,及指针;可得先把基础概念搞清楚!
页: [1]
查看完整版本: 关于BOOL量的一点应用。