其他分享
首页 > 其他分享> > 2021-06-12

2021-06-12

作者:互联网

同样一个8位的flag不同的位存储方式

第一种:
定义好一个结构体之后,可以直接对其调试,还可以直接对定义的每一个位进行操作。
这样的优点点是每一个位都是独立开的,且可以相关flag直接设置操作

下面展示一些 内联代码片

typedef union{
	uint8_t bytes;
	struct bit{
	uint8_t b_0  :1;	
	uint8_t b_1  :1;
	uint8_t b_2  :1;
	uint8_t b_3  :1;
	uint8_t b_4  :1;
	uint8_t b_5  :1;
	uint8_t b_6  :1;
	uint8_t b_7  :1;
	}bits;	
}FLAG_T;

FLAG_T  lcd_flag ; 

#define LCD_OPEN_FLAG  lcd_flag.bits.b_0 
#define XXXXXXXXXXXXX  lcd_flag.bits.b_1 

第二种

通过函数形式设置相应的位 :优势是比较清晰
下面展示一些 内联代码片

uint8_t lcd_flag;

#define  XXXXXXX  0x01
#define  XXXXXXX  0x02
#define  XXXXXXX  0x03
#define  XXXXXXX  0x04

#define LCD_SET(flag) 	(lcd_flag |= flag )
#define LCD_CLEAR(flag) (lcd_flag &= ~flag )
#define LCD_GET(flag) 	(lcd_flag & flag )

两种方式 定义可节省大量的空间

标签:12,06,LCD,uint8,XXXXXXX,flag,lcd,2021,define
来源: https://blog.csdn.net/qq_38780508/article/details/117851357