- 主题:C语言结构体数据传输和存储,有必要序列化和反序列化吗?
这不还是得解决大小端的问题。
【 在 litguy 的大作中提到: 】
: 我们 X86 + AARCH64 互传
: 也没作序列化
: 大小端设置成一致就行
: ...................
--
FROM 183.253.147.*
他可能说的是 pc 寄存器以及 load/store 要求访问的内存地址以 word 为单位对齐。那个是内存地址。不是结构的对齐,虽然也有一些关系。
ARM 现在默认是不检查对齐。效率会差一些。
假如有这样的 c 结构体
struct Example
{
char c;
int i;
}
这个结构体在 x86 底下是 8 个字节大小。就算有些环境下,因为编译参数被弄成了 5 字节。如果大小端也没弄对,在机器间传递数据就更容易出错了。
【 在 JulyClyde 的大作中提到: 】
: 没听说过arm必须对齐啊
--
FROM 183.253.147.*
我就是不记得有内存地址的对齐这个要求啊……
可能是我没踩过坑所以不记得?
【 在 hgoldfish 的大作中提到: 】
: 他可能说的是 pc 寄存器以及 load/store 要求访问的内存地址以 word 为单位对齐。那个是内存地址。不是结构的对齐,虽然也有一些关系。
: ARM 现在默认是不检查对齐。效率会差一些。
: 假如有这样的 c 结构体
: ...................
--
FROM 222.71.112.*
x86不强制,只是损失性能
【 在 JulyClyde 的大作中提到: 】
: 我就是不记得有内存地址的对齐这个要求啊……
: 可能是我没踩过坑所以不记得?
--
FROM 116.233.93.*
字节对齐
【 在 wjhtingerx 的大作中提到: 】
:
: 是不是最多把里面多字节成员搞个网络字节序处理一下就行了?
:
#发自zSMTH@PBAM00
--
FROM 223.104.44.*
没写过MMX、SSE、AVX汇编指令?
【 在 kknd1399 的大作中提到: 】
: x86没问题
--
FROM 123.116.125.*
X86一样需要对齐,只是不对齐速度变慢而已。
RISC不对齐一般报错了,要求程序员和编辑器负责对齐。
【 在 JulyClyde 的大作中提到: 】
: 我就是不记得有内存地址的对齐这个要求啊……
: 可能是我没踩过坑所以不记得?
--
FROM 123.116.125.*
现代x86用unaligned mov,性能损失只看是不是真的unaligned
没看过手册?
【 在 puke 的大作中提到: 】
: 没写过MMX、SSE、AVX汇编指令?
: 【 在 kknd1399 的大作中提到: 】
: : x86没问题
: ...................
--
FROM 223.104.41.*
ARM 主板已经把 CPU 配置成 X86 一致的小端模式了
不用自己管这个,直接发送结构体就行了
【 在 hgoldfish 的大作中提到: 】
: 这不还是得解决大小端的问题。
:
--
FROM 182.150.27.*
这太奇葩了吧。。
在上面跑的软件岂不是都要重新编译?
【 在 litguy 的大作中提到: 】
: ARM 主板已经把 CPU 配置成 X86 一致的小端模式了
: 不用自己管这个,直接发送结构体就行了
--
FROM 183.253.147.*