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

本文探讨了在C语言中使用结构体和函数两种方式来操作8位标志位。第一种方法通过结构体定义每个位并直接进行位操作,方便调试和独立设置。第二种方法利用函数设置、清除和获取特定位,保持代码清晰。这两种方法在节省空间和提高效率方面各有优势。
摘要由CSDN通过智能技术生成

同样一个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 )

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li_凌澜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值