|
1
3
如果客户机和服务器应用程序使用不同的编译器或设置进行编译,或者在具有不同endianness的平台上进行编译,该怎么办?在这种情况下,两个平台上的结构可能大小不同,在内存中的布局也可能不同。 |
|
|
2
1
我可能还注意到
|
|
|
3
0
您的错误消息表明存在强制转换问题。
它没有在你的代码片段中声明,所以我不知道它是什么,但我从这里开始。 |
|
|
4
0
从整个结构中执行memcpy确实是邪恶的:-)。首先,根据体系结构的不同,数据可能会有不同的对齐方式。如果另一边的架构不同呢?此外,使用诸如_packed之类的关键字在不同的编译器之间是不可移植的。 据我所知,最好的方法是使用像PHP包/解包这样的API。这使得代码真正具有可移植性,而无需使用特定于编译器的丑陋关键字,如u-packed。 我在网上没有找到任何C的打包/解包,所以我自己写了。
哪里
另一个更广泛的例子:
包装非常简单:
它不仅创建了可移植的代码,而且非常漂亮;) |