OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3291|回复: 6

将一个结构体里面的成员赋值给数组

[复制链接]

8

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-10-20
在线时间
28 小时
发表于 2023-6-23 18:10:28 | 显示全部楼层 |阅读模式
5金钱
定义了一个结构体,里面的成员是8个float,然后又定义了一个u8数组,现在想要把结构体里面的这8个float赋值给定义的u8数组,怎么写能实现而且比较简洁?结构体成员为:float_data_t.f1   f2......f8
u8数组为:AHRS[50]
谢谢各位大佬!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

360

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2021-2-4
在线时间
146 小时
发表于 2023-6-23 22:06:59 | 显示全部楼层
for循环啊,
float *ptr = float_data_t.f1;
然后for循环里写  
AHRS[i]= ptr++;
回复

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4418
金钱
4418
注册时间
2018-5-11
在线时间
923 小时
发表于 2023-6-24 06:50:03 | 显示全部楼层
u8是0-256的正整数,
float是浮点数,有正有负且值的范围很大,
float变量赋值给u8首先是不合理
8个float赋值给50个u8,
更是不知道想干什么

我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4418
金钱
4418
注册时间
2018-5-11
在线时间
923 小时
发表于 2023-6-24 06:55:57 | 显示全部楼层
如果只是想把结构体变量的字节取出来,
就定义一个指针p指向这个结构体变量
然后将这个指针(实际就是地址)强制转换为u8指针类型,
*AHRS++=*p++就可以了。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

26

主题

1538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6376
金钱
6376
注册时间
2015-8-25
在线时间
1004 小时
发表于 2023-6-24 10:43:21 | 显示全部楼层
方法1.memcpy
方法2.利用联合体
union TestDef_Un
    {
        float_data_t  m_stFloatData;
        uint8_t  m_aucInputData[32];
    } float_data_un;
给float_data_un.m_stFloatData.f1赋值即是m_aucInputData[0-3]赋值
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3329
金钱
3329
注册时间
2011-11-10
在线时间
207 小时
发表于 2023-6-24 11:35:28 | 显示全部楼层
直接内存复制就行了,复制是按字节复制的。但是你复制以后要想正确的取值,还得用float,用U8是无法取到正确的值的。float类型的数据结构和u8不同。
回复

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2023-6-25 10:48:34 | 显示全部楼层
memcpy(buff,&struct,sizeof(struct));
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 06:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表