野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 525316|回复: 899

【每日一题讲解】位域的占用空间问题

  [复制链接]
发表于 2013-12-8 16:08:38 | 显示全部楼层 |阅读模式
  1. struct test
  2. {
  3. char f1 : 3;
  4. short f2 : 4;
  5. char f3 : 5;
  6. };
  7. 求 sizeof(test)大小

  8. A.1
  9. B.2
  10. C.3
  11. D.4
复制代码
请回答问题后再看答案哦,否则 每日一题 就没有意义了。
答错的,讲一下 为什么 会答错 呗!
答案回复可见!!


很多同学 不会 位域 ,今天就出 一道 位域的题目

含位域结构体
使用位域的主要目的是压缩存储,其大致规则为:  
1)   如果相邻位域字段的类型相同,且其位宽之和小于类型的 sizeof 大小,则后面的字段将紧邻前一个字段存储,直到不能容纳为止;  
2)   如果相邻位域字段的类型相同,但其位宽之和大于类型的 sizeof 大小,则后面的字段将从新的存储单元开始,其偏移量为其类型大小的整数倍;  
3)   如果相邻的位域字段的类型不同,则各编译器的具体实现有差异,VC6 采取不压缩方式,Dev-C++采取压缩方式;  
4)   如果位域字段之间穿插着非位域字段,则不进行压缩;  
5)   整个结构体的总大小为最宽基本类型成员大小的整数倍。
  1. 1.  struct   test   
  2. 2.  {   
  3. 3.      char   f1   :   3;   
  4. 4.      short  f2   :   4; //位域类型为 char,第 1 个字节仅能容纳下 f1 和 f2,所以 f2 被压缩到第 1 个字节中
  5. 5.      char   f3   :   5; //f3 只能从下一个字节开始
  6. 6.  };           //sizeof(test)=2
复制代码
回复

使用道具 举报

发表于 2013-12-8 17:43:25 | 显示全部楼层
2真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-8 18:36:59 | 显示全部楼层
路过,学习下
回复 支持 反对

使用道具 举报

发表于 2013-12-8 19:00:59 | 显示全部楼层
学习………………
回复 支持 反对

使用道具 举报

发表于 2013-12-8 19:31:36 | 显示全部楼层
抢沙发~我来顶楼主的
回复 支持 反对

使用道具 举报

发表于 2013-12-8 21:31:32 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-8 21:42:49 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-9 00:56:58 | 显示全部楼层
我认为是6啊
回复 支持 反对

使用道具 举报

发表于 2013-12-9 01:04:18 | 显示全部楼层
本帖最后由 阿司匹林 于 2013-12-9 01:14 编辑



看来错了
回复 支持 反对

使用道具 举报

发表于 2013-12-9 08:38:18 | 显示全部楼层
抢沙发~我来顶楼主的
回复 支持 反对

使用道具 举报

发表于 2013-12-9 08:39:20 | 显示全部楼层
位域的问题还是没有搞清楚啊
回复 支持 反对

使用道具 举报

发表于 2013-12-9 08:39:37 | 显示全部楼层
位域的问题还是没有搞清楚啊
回复 支持 反对

使用道具 举报

发表于 2013-12-9 09:06:43 | 显示全部楼层
竟然做错了
回复 支持 反对

使用道具 举报

发表于 2013-12-9 11:59:34 | 显示全部楼层
不是2吗被劈到了,非一般的雷人走过路过,不能错过走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-12-9 17:51:34 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-9 18:34:28 | 显示全部楼层
学习学习……
回复 支持 反对

使用道具 举报

发表于 2013-12-10 09:25:00 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-10 15:33:49 | 显示全部楼层
12?看答案。
回复 支持 反对

使用道具 举报

发表于 2013-12-10 15:36:15 | 显示全部楼层

好搞笑哦
回复 支持 反对

使用道具 举报

发表于 2013-12-10 17:11:04 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-10 22:24:53 | 显示全部楼层
选D吗,每日答题今天怎么没了?
回复 支持 反对

使用道具 举报

发表于 2013-12-12 11:11:41 | 显示全部楼层
D,结构体的大小
回复 支持 反对

使用道具 举报

发表于 2013-12-13 13:52:49 | 显示全部楼层
xxx学习....
回复 支持 反对

使用道具 举报

发表于 2013-12-15 16:17:42 | 显示全部楼层
强制转换?
回复 支持 反对

使用道具 举报

发表于 2013-12-15 21:49:57 | 显示全部楼层
4个字节,选D
回复 支持 反对

使用道具 举报

发表于 2013-12-22 12:53:10 | 显示全部楼层
C。看答案。
回复 支持 反对

使用道具 举报

发表于 2013-12-24 11:09:59 | 显示全部楼层
好牛B的2!
回复 支持 反对

使用道具 举报

发表于 2013-12-24 16:09:46 | 显示全部楼层
看答案看答案!
回复 支持 反对

使用道具 举报

发表于 2013-12-26 19:44:06 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-12-29 23:45:54 | 显示全部楼层
来学习……
回复 支持 反对

使用道具 举报

发表于 2013-12-30 20:48:36 | 显示全部楼层
B走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-1-6 18:31:39 | 显示全部楼层
我选择答案D
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-6 18:36:15 | 显示全部楼层
flr 发表于 2014-1-6 18:31
我选择答案D

D是 不对的,需要 加强 C语言 练习。
回复 支持 反对

使用道具 举报

发表于 2014-1-6 18:36:51 | 显示全部楼层
山外メ雲ジ 发表于 2014-1-6 18:36
D是 不对的,需要 加强 C语言 练习。

好的,谢谢!一定
回复 支持 反对

使用道具 举报

发表于 2014-1-7 08:48:32 | 显示全部楼层
这道题应该有信心,C
回复 支持 反对

使用道具 举报

发表于 2014-1-7 09:56:17 | 显示全部楼层
这题不会,过来看答案
回复 支持 反对

使用道具 举报

发表于 2014-1-7 10:32:17 | 显示全部楼层
答案为D 4 个
回复 支持 反对

使用道具 举报

发表于 2014-1-8 23:16:32 | 显示全部楼层
    bbbbbbbbbbbbbbbbbbbbbbbbbbb
回复 支持 反对

使用道具 举报

发表于 2014-1-13 10:07:27 | 显示全部楼层
我觉得是………6
回复 支持 反对

使用道具 举报

发表于 2014-1-15 21:30:35 | 显示全部楼层
应该是2个字节长度
回复 支持 反对

使用道具 举报

发表于 2014-1-16 22:10:54 | 显示全部楼层
d 答案 路过学习一下
回复 支持 反对

使用道具 举报

发表于 2014-1-19 16:44:33 | 显示全部楼层
应该是四个吧
回复 支持 反对

使用道具 举报

发表于 2014-1-19 22:20:29 来自手机 | 显示全部楼层
究竟是什么啊   为什么我回复了还是看不到答案来自: Android客户端
回复 支持 反对

使用道具 举报

发表于 2014-1-19 22:40:27 | 显示全部楼层
答案是:2吗?
回复 支持 反对

使用道具 举报

发表于 2014-1-20 23:58:42 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2014-1-22 12:01:01 | 显示全部楼层
过来学习下走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-1-22 12:01:48 | 显示全部楼层
过来学习下走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-1-22 18:13:48 | 显示全部楼层
抢沙发~给哥们顶一个抢沙发~给哥们顶一个抢沙发~给哥们顶一个抢沙发~给哥们顶一个抢沙发~给哥们顶一个抢沙发~给哥们顶一个
回复 支持 反对

使用道具 举报

发表于 2014-1-24 13:57:57 | 显示全部楼层
抢沙发~给哥们顶一个抢沙发~给哥们顶一个强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2014-1-24 15:49:27 | 显示全部楼层
我觉得是C,但是我选A
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:20 , Processed in 0.071614 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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