一、使用联合体定义一个浮点数结构,可当作一浮点数使用,也可当作4个字节使用,在应用中非常方便。
typedef union
{
unsigned char data[4];
float decimal;
}float_u;
如:
float_u a, b;
a.decimal = 1.2;
if (a.decimal >= 1.0)
{
}
//
memcpy(b.data, a.data, 4);
二、定义位结构联合体,可使用其中某位
//define byte bit.
typedef union
{
uint8_t val;
struct
{
uint8_t b7:1;
uint8_t b6:1;
uint8_t b5:1;
uint8_t b4:1;
uint8_t b3:1;
uint8_t b2:1;
uint8_t b1:1;
uint8_t b0:1;
}bitAttr;
}BUINT8_U;
//define int bit.
typedef union
{
uint32_t val;
struct
{
uint32_t b31:1;
uint32_t b30:1;
uint32_t b29:1;
uint32_t b28:1;
uint32_t b27:1;
uint32_t b26:1;
uint32_t b25:1;
uint32_t b24:1;
uint32_t b23:1;
uint32_t b22:1;
uint32_t b21:1;
uint32_t b20:1;
uint32_t b19:1;
uint32_t b18:1;
uint32_t b17:1;
uint32_t b16:1;
uint32_t b15:1;
uint32_t b14:1;
uint32_t b13:1;
uint32_t b12:1;
uint32_t b11:1;
uint32_t b10:1;
uint32_t b9:1;
uint32_t b8:1;
uint32_t b7:1;
uint32_t b6:1;
uint32_t b5:1;
uint32_t b4:1;
uint32_t b3:1;
uint32_t b2:1;
uint32_t b1:1;
uint32_t b0:1;
}bitAttr;
}BUINT32_U;
页面更新:2024-04-14
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号