找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

简单的代码,求大神告知,谢谢你

查看数: 1466 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-4-8 09:39

正文摘要:

答案: 3  pg.state=3   疑问: 结构体的大小是所有成员的内存之和,我觉得是sizeof(pg) 为7             state 占用了3位,101,应该为5&n ...

回复

ID:895406 发表于 2021-4-8 14:13
77599585 发表于 2021-4-8 13:03
后面的问题我也不懂 希望你弄明白之后回复我一下 互相学习哈

好的没问题,谢谢你!
ID:592807 发表于 2021-4-8 13:56
77599585 发表于 2021-4-8 13:03
后面的问题我也不懂 希望你弄明白之后回复我一下 互相学习哈

看错了,重新看一下。两个short合起来不超过8,占用1个字节,剩下的三个合起来等于8,占用一个字节合起来就是3个字节。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:592807 发表于 2021-4-8 13:48
77599585 发表于 2021-4-8 13:03
后面的问题我也不懂 希望你弄明白之后回复我一下 互相学习哈

不报错吗?没有凑成3个F,少了一位。这种结构体一般会强制配成8位  16位  32位的,随便定义一位也要凑齐。
假设你不报错,优化自动给你添加了最后一位。

pg这个结构体就是一个16位的类型(定义了15个,帮你补一个)
所以sizeof(pg)应该等于4才对
pg.state=5



另外unsigned short mode:4  带变得是mode只取unsigned short中的最低4位

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:871393 发表于 2021-4-8 13:03
77599585 发表于 2021-4-8 12:57
冒号后面是占用几位
同类型的short可以挤到一起  只要不超过sizeof(short)的位数  就算一个short  就是2;
...

后面的问题我也不懂 希望你弄明白之后回复我一下 互相学习哈
ID:871393 发表于 2021-4-8 12:57
冒号后面是占用几位
同类型的short可以挤到一起  只要不超过sizeof(short)的位数  就算一个short  就是2;
char也可以挤到一起 一共8位正好是一个sizeof(char)  也算一个char  就是1;
一共就是3

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表