首先建立一個公共點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進行布爾讀寫操作了。
