串口传输数据时,结构体如何转换
李肖遥
共 1702字,需浏览 4分钟
·
2021-12-24 02:03
来源:程序天空下的骆驼
typedef union
{
float f;
unsigned char s[4];
}Union_test;
#include
//共用体
//float f;//4个字节
//char s[4];//4个字节
typedef union
{
float f;
unsigned char s[4];
}Union_test;
typedef struct st
{
float f1;
}Struct_test;
void main(void)
{
float a=231.5;
Union_test x;
Struct_test z;
x.f = a;
z = *(Struct_test *)(&(x.s));
printf("z=%.2f\r\n",(double)z.f1);
printf("End of this programme\r\n");
}
我们可以通过下面的函数测试是大端存储还是小端存储:
void test(void)
{
int a = 1;
unsigned char *start=&a;
if(*start == 1)
printf("小端存储");
else if(*start == 0)
printf("大端存储");
}
参考来源:https://www.cnblogs.com/codecamel/p/4703174.html
声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
关注我的微信公众号,回复“加群”按规则加入技术交流群。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。
评论