关于通信中C/C++数据交换的一个问题
typedef struct fighter
{
int32 seriesNo;
int32 gunNum;
int32 speed;
} stFighter;
stFighter myFigther;
目前我们的通信是这样的,服务端将myFigther 以二进制流 figtherBuff的方式传到客户端,客户端根据协议知道 speed在数据流的8-11字节,将8-11字节拿出,解析为int32 的参量。
我就想,既然myFigther是结构体,那可以不可以两端都定义stFighter;,在figtherBuff传到客户端之后,客户端通过stFighter *pmyFigther =null ,pmyFigther = (*stFighter)figtherBuff 将二进制数据强制转换的方式得到协议的内容,直接pmyFigther ->speed的方式使用数据?
如果可以,这样做除了不能跨语言(只能在c与C/C++之间,与C#(好像C#也可以强制转换)之间通信)之外,还有什么缺点吗?
是不是如果两端机器的大小端不一样就会出问题?