描述struct中的协议格式

时间:2017-09-28 15:41:02

标签: c struct

我想直接将一个byte array分配给C中的结构。协议看起来像这样(是的,我知道这不是编译,因为flexlible数组只允许作为结构的最后一个元素)

struct telegram{
    uint8_t controll;
    uint16_t src_addr;
    uint16_t dst_addr;
    uint8_t is_group_addr :1;
    uint8_t routing_cnt :3;
    uint8_t data_len :3;
    uint8_t data[];
    uint8_t chksum;
};

我该怎么解决?我喜欢我可以使用struct直接访问协议中的字段。简单的方法是说data[]的最后一个元素是校验和,但我想知道是否有更好/更漂亮的方法来做到这一点。

0 个答案:

没有答案