本人在代码书写时发现此类报错,网上好像没有解决的办法,特此记录本人的解决方法,如有不对请在评论区留言
报错代码:
typedef struct __packed { uint8_t id :4; uint8_t status :3; uint8_t none :1; } RIS_Mode_t
解决方法:
typedef __packed struct { uint8_t id :4; uint8_t status :3; uint8_t none :1; } RIS_Mode_t
__packed是进行一字节对齐。使用_packed一般会以降低运行性能为代价,由于大多数cpu处理数据在合适的字节边界数的情况下会更有效,packed的使用会破坏这种自然的边界数。
将 __packed置换位置或者删去就没有报错了。