c - Union C中的结构偏移问题
问题描述
我在 Keil 的 C 语言中有一个问题,下面是示例 C 代码。
struct A
{
uint8_t header;
uint16_t volume;
uint16_t temp;
uint8_t footer;
};
union {
struct A Packet;
uint8_t buff[6];
} A_union;
问题是我想用页眉、页脚和数据填充结构并用 buff 对其进行序列化,但联合更改字节偏移量(我什至看不到 buff 中的页脚),如图所示。我该如何解决?
更新:正如 Sander 在此链接中建议的那样,我通过修改 struct 解决了这个问题,如下所示
struct __attribute__((__packed__)) A{
...}
解决方案
推荐阅读
- android - onResume 在显示透明活动时调用后台活动
- c++ - 如何从我的 C++ 组件访问当前焦距数据,尤其是其他镜头?
- python - 词干提取后找到单词的原始形式
- mysql - 如何添加 'sequence' 列以在表中进行 PK(Oracle 和 MySQL)
- javascript - 将带有插槽的 shadow dom 的子级移出 Web 组件
- pandoc - 有没有办法让一个部分链接回 pandoc 中的目录?
- shopify - 如何编辑允许 shopify 用户标签
- javascript - 通过父 websocket 更新数以千计的反应子级
- postgresql - Kotlin 公开访问分区数据库
- rust - 在 GTK4 中制作一个可点击的框