0

我正在做一个项目,将一个古老的 Solaris (sparc) 目标应用程序转换为 Linux。语言是 C/C++,大部分代码是由电子工程师编写的——即从事大量嵌入式设备工作的人。

因此,联合和位域在所有地方都被使用。处理不涉及位域或联合的结构和诸如此类的东西非常简单,但是由于将位解释为 MSB 或 LSB 的约定以及字节顺序,将代码转换为x86 的 Linux。

我正在寻找一种干净的方法来将这个旧代码带入 21 世纪。任何建议(示例、研究论文、白皮书、书籍建议等)都非常受欢迎。

4

1 回答 1

1

这些结构是用于将数据保存为文件还是通过某种串行/网络链接发送?当数据要从机器转移到另一台机器时,您只需要担心字节顺序。

在内存数据以外的其他结构中使用位域是一种非常糟糕的做法。您最好在整个程序中保持结构不变,只需修改读取/写入它们的函数。此时,您可以干净地进行字节顺序转换。

于 2011-09-05T23:48:42.367 回答