概述
/* 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语言位域应用--一个字节存八个标志位所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复