说的很明白了呀,一个linux系统,一个windows一系统,你可以理解其中一个为数据产生者,产生一个叫做 Foo 的 struct, 另一个为消费者,要拿这个 struct 的数据来用,所以两个机器上的代码不同但是都有同样的 struct,这个struct 就要通过tcp/ip来传输。然后问题就来了,看主贴的链接,里面有一些数据类型它长度不一样,于是两边就不一致了,A说我已经传了一个struct过去了,B说你传的这玩意根本就不是一个struct,大小都对不上!
而且不只是自己定义的问题,即使都用一样长度的数据类型(比如 char、int),它这些struct在两边看起来,可能还是有些不一样的。还有就是用库的问题,比如库已经定义有 string 类了,然后你去 sizeof(string), 你会看到有的是28, 有的是32, 有的是40..
【 在 z16166 的大作中提到: 】
: align/padding不影响。
: 贴一下结构(因为说了半天,还没明白是啥情况,只能空对空)、序列化后出来的啥幺蛾子。用的自己撸的序列化库?是32还是64的编译?
: windows上MSVC的话,32的int、long和64的int、long等都是一样的宽度。
: ...................
--
FROM 223.104.63.*