struct A
{
int a;
int b;
};
char data[10];
struct A a;
如果我使用memcpy()
函数将a
转换成char数组data
,并用socket传输,我是否应该考虑字节顺序现在?
最佳答案
如果它是一个真实的项目(将在现实世界中部署的东西)那么是的,您绝对需要关心字节顺序。您还需要关心其他序列化问题,包括数据类型大小和结构字段对齐。
您可以通过使用类型显式大小来消除一些麻烦,例如使用 int32_t
而不是 int
。
结构字段对齐问题要复杂得多。简短的回答:不要从一台机器上send()
一个原始结构,然后在另一台机器上recv()
它。这样做假设在两个系统上运行的应用程序以完全相同的方式布置它们的结构字段(具有相同的填充)。
关于c - 当我用套接字传输结构时,我应该考虑字节顺序吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33718045/