在 beej 的网络指南中,有一节为序列化编组或打包数据,他在其中描述了打包和解包数据的各种功能(int、float、double ..等)。
使用下面定义的 union(类似可以为 float 和 double 定义)并将 integer.pack 作为 integer.i 的打包版本传输,而不是打包和解包函数更容易。
union _integer{
char pack[4];
int i;
}integer;
有人能解释一下为什么工会是一个糟糕的选择吗?
有没有更好的数据打包方法?