C语言中联合体的典型应用

一、使用联合体定义一个浮点数结构,可当作一浮点数使用,也可当作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

标签:联合体   合体   字节   典型   定义   语言   结构

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top