你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请教一个C语言结构体的赋值问题。

[复制链接]
vention123456 提问时间:2017-10-18 20:57 /
阅读主题, 点击返回1楼
收藏 评论14 发布时间:2017-10-18 20:57
14个回答
张亚飞 回答时间:2017-10-19 14:32:52
先一字节对齐,把新增的放在最下边,memcpy
vention123456 回答时间:2017-10-19 18:25:03
张亚飞 发表于 2017-10-19 14:32
先一字节对齐,把新增的放在最下边,memcpy

问题就是不能把多出的放最下面;多出的是中间插入的。
vention123456 回答时间:2017-10-19 18:25:46
uzslm 发表于 2017-10-18 22:46
union 是个很好的办法,但你多出来那个成员最好在底部;
而且这涉及到成员对齐问题,可以看看用 pack预编译 ...

问题就是不能把多出的放最下面;多出的是中间插入的。
张亚飞 回答时间:2017-10-20 09:47:20
vention123456 发表于 2017-10-19 18:25
问题就是不能把多出的放最下面;多出的是中间插入的。

union 其实就是占用同一块内存,在共用体里边定义一个与结构体等长的char数组,数组里边每个字节对应结构体从上到下的字节。按照结构体里边每个元素的字节数从stOne赋值值stTwo。
owenqll 回答时间:2017-10-20 11:26:46
个人觉得可以用指针强制类型转换,大致思路如下
先定义两个结构体指针,分别指向两个结构体的首地址;
再强制将两个指针转换为uint8类型
用for循环逐个读取并幅值
=========
个人愚见,勿拍砖
12

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版