硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1746|回复: 7
收起左侧

[技术讨论] C语言中,结构体怎么进行大小端转换

[复制链接]

2

主题

3

回帖

9

积分

新手上路

积分
9
发表于 2022-3-22 17:02:26 来自手机 | 显示全部楼层 |阅读模式
如题,结构体中有很多变量,char,short,int都有,怎么对这些变量统一大小端转换
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2022-3-22 17:11:23 | 显示全部楼层
这个是我们的玩法。

实战技能分享,各种数据类型的SPI, UART, I2C,FDCAN等方式的通信传输以及存储到EEPROM, Flash等设备的简易实现方法
https://www.armbbs.cn/forum.php? ... 9659&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2022-3-22 17:18:29 | 显示全部楼层
eric2013 发表于 2022-3-22 17:11
这个是我们的玩法。

实战技能分享,各种数据类型的SPI, UART, I2C,FDCAN等方式的通信传输以及存储到EEP ...

啥意思,没看懂,我想问结构体的大小端转换
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2022-3-22 17:25:32 | 显示全部楼层
馄饨 发表于 2022-3-22 17:18
啥意思,没看懂,我想问结构体的大小端转换

哦,这个意思啊,手动切换即可,这个批量不方便,因为数据类型都不一样。
image.png



回复

使用道具 举报

8

主题

104

回帖

138

积分

初级会员

积分
138
发表于 2022-3-22 17:40:11 | 显示全部楼层
eric2013 发表于 2022-3-22 17:25
哦,这个意思啊,手动切换即可,这个批量不方便,因为数据类型都不一样。

在c++上可以很容以的实现。
回复

使用道具 举报

8

主题

104

回帖

138

积分

初级会员

积分
138
发表于 2022-3-22 17:55:57 | 显示全部楼层
eric2013 发表于 2022-3-22 17:25
哦,这个意思啊,手动切换即可,这个批量不方便,因为数据类型都不一样。

Building Endian-Safe Code with C++

这个应该能帮助到题主,16年那会在ZYNQ的A9上试过。
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2022-3-23 16:07:37 | 显示全部楼层
eric2013 发表于 2022-3-22 17:25
哦,这个意思啊,手动切换即可,这个批量不方便,因为数据类型都不一样。

暂时先手动切换吧,现在结构体很小,容易做,就是想着结构体如果大了,能不能批量处理

调节字节顺序的这几个指令(__REV,__REV16,__REVSH,__RBIT),有例子嘛,我不会用,学习学习
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2022-3-23 16:08:18 | 显示全部楼层
李益达 发表于 2022-3-22 17:40
在c++上可以很容以的实现。

谢谢啦,我还是想在C语言上去实现这个功能,
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 15:11 , Processed in 0.300390 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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