综合技术
直播中

朱红艳

7年用户 164经验值
私信 关注
[问答]

如何高效的以uint8_t形式访问结构体变量并打包数据?

题目描述的不是很清楚,LZ请教广大程序猿的问题描述如下:
C语言
现有个结构体变量:
__packed struct TYPE
{
    uint32_t a;
    uint8_t b;
    ...
    uint8_t len;
    uint8_t *p;
   ...
}
*p指向一个数据包,长度为len(长度不定),想要将结构体成员和数据包全部存入一个uint8_t 数组中,用于发送消息。
有没有什么比较方便、高效点的办法?
*************************************************************************
最后用于发送消息的数据格式固定,[a][...][len][data][...]
*****************************************************************
目前采用的办法是先memcpy 成员a 到成员len (这部分长度固定)
然后memcpy 数据包指针*p指向的数据包
最后在memcpy最后剩余的
感觉太low了...

回帖(1)

杨梅

2019-11-5 09:38:22
直接u8*p=&数组;然后发送sizeof数组这么多字节即可。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分