欢迎光临散文网 会员登陆 & 注册

C语言中 memcpy()与#pragma pack(1)联用给结构体赋值

2022-08-05 09:00 作者:GXTon_阿通  | 我要投稿

在解决协议传输问题中,

经常会用到memcpy()对接收到的数据进行搬运,

把接收到的数据搬运到结构体或者共用体,这样就省去了协议的解析.

但是需要注意一个问题,

就是结构体中存在对齐的问题,如下图:

图中加上#pragma pack(1)会改变结构体的存储方式,

加上#pragma pack(1)之后的结构体才是连续的内存.

测试:

运行后输出:


C语言中 memcpy()与#pragma pack(1)联用给结构体赋值的评论 (共 条)

分享到微博请遵守国家法律