/* define.h */
typedef struct {
unsigned char bit0 :1;
unsigned char bit1 :1;
unsigned char bit2 :1;
unsigned char bit3 :1;
unsigned char bit4 :1;
unsigned char bit5 :1;
unsigned char bit6 :1;
unsigned char bit7 :1;
}_STC_BIT;
#define DEF_BIT7(pdata) ((volatile _STC_BIT*)(pdata))->bit7
#define DEF_BIT6(pdata) ((volatile _STC_BIT*)(pdata))->bit6
#define DEF_BIT5(pdata) ((volatile _STC_BIT*)(pdata))->bit5
#define DEF_BIT4(pdata) ((volatile _STC_BIT*)(pdata))->bit4
#define DEF_BIT3(pdata) ((volatile _STC_BIT*)(pdata))->bit3
#define DEF_BIT2(pdata) ((volatile _STC_BIT*)(pdata))->bit2
#define DEF_BIT1(pdata) ((volatile _STC_BIT*)(pdata))->bit1
#define DEF_BIT0(pdata) ((volatile _STC_BIT*)(pdata))->bit0
/* xxx.h */
extern unsigned char status;
...
#define flag_xx4 DEF_BIT4(&status)
#define flag_xx3 DEF_BIT3(&status)
#define flag_xx2 DEF_BIT2(&status)
#define flag_xx1 DEF_BIT1(&status)
#define flag_xx0 DEF_BIT0(&status)
以上来自瑞萨demo。
或者:
union {
struct {
uint8_t flag_xx0 : 1;
uint8_t flag_xx1 : 1;
uint8_t flag_xx2 : 1;
uint8_t flag_xx3 : 1;
uint8_t rsv : 4;
}flag;
uint8_t flags;
}
最后
以上就是独特小蝴蝶最近收集整理的关于C语言位域应用--一个字节存八个标志位的全部内容,更多相关C语言位域应用--一个字节存八个标志位内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复