C语言共同体位操作的使用

typedef union UB32
{
	float val_float;
	u32   val_u32;
	u16   val_u16[2];
	u8    val_u8[4];
	struct
	{
		u8 bit0  : 1;
		u8 bit1  : 1;
		u8 bit2  : 1;
		u8 bit3  : 1;
		u8 bit4  : 1;
		u8 bit5  : 1;
		u8 bit6  : 1;
		u8 bit7  : 1;
		u8 bit8  : 1;
		u8 bit9  : 1;
		u8 bit10 : 1;
		u8 bit11 : 1;
		u8 bit12 : 1;
		u8 bit13 : 1;
		u8 bit14 : 1;
		u8 bit15 : 1;
		u8 bit16 : 1;
		u8 bit17 : 1;
		u8 bit18 : 1;
		u8 bit19 : 1;
		u8 bit20 : 1;
		u8 bit21 : 1;
		u8 bit22 : 1;
		u8 bit23 : 1;
		u8 bit24 : 1;
		u8 bit25 : 1;
		u8 bit26 : 1;
		u8 bit27 : 1;
		u8 bit28 : 1;
		u8 bit29 : 1;
		u8 bit30 : 1;
		u8 bit31 : 1;
	}Bits;
};

定义共同体变量

union 		UB32 ssTType;		 	//传感器使能标志 及 触发类型 [10]:水位 [11]:柜门

可以使用宏定义

#define		bPress   			bit1			//可燃
#define		bGasEx   			bit10  			//水位

最终效果是对float型变量的每一位进行

		tpa.ssTType.Bits.bGasEx=1;
		tpa.ssTType.Bits.bWater=1;

至此结束

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值