首先建立一个公共点H文件,加入通用代码如下
typedef union
{
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;
} bits;
} UINT8_VAL;
通用定义联合体写好以后,要定义一个只占用个Byte的标志位的话,只要定义一下uchar型字节,然后引用它的其中某一位就可以了。
比如在C文件中定义一个联合体,加入代码
UINT8_VAL BitFlag1 = {0x00}; //每一个bit初始化为0,如果对某一位置1可用BITx
好了,定义了一个BitFlag1的联合体,如果要在其他点C文件中引用其中的某一个位标志只要在刚刚的点H文件中外部声明一下就可以了,如下代码
//-------------------位变量声明--------------------------
extern UINT8_VAL BitFlag1;
#define t1msFlag BitFlag1.bits.b0 // 任务1
外部声明了联合体 BitFlag1 ,同时宏定义了其中的一个位t1msFlag作为这个联合体中字节的最低Byte位,在其他C文件中就可以直接对t1msFlag进行布尔读写操作了。