我目前的设计涉及嵌入式系统和 PC 之间的通信,我总是被结构设计所困扰。
这两个系统有不同的字节顺序,我需要处理。但是,我发现我不能只为每 4 个字节做一个简单的字节顺序切换来解决问题。事实证明,这取决于结构。
例如,像这样的结构:
{
uint16_t a;
uint32_t b;
}
将导致 a 和 b 之间的填充。最终,字节序切换必须特定于 a 和 b,因为存在填充字节。但它看起来很难看,因为每次更改结构内容时都需要更改字节序切换逻辑。
当填充出现时,在结构中排列元素的好策略是什么?我们是否应该尝试重新排列元素以使结构末尾只有填充字节?
谢谢。