免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3756 | 回复: 11

[C] 一个关于union的问题,请指教 [复制链接]

论坛徽章:
0
发表于 2010-05-23 13:30 |显示全部楼层
  1. #include <stdio.h>   
  2. #include <stdlib.h>
  3. union dt
  4. {
  5. int a; char b; double c;
  6. }data;
  7. int main()   
  8. {   
  9.   data.a=5;
  10.   printf("%f\n",data.c);   
  11.   return 0;
  12. }
复制代码
union的各个分量共享内存,访问时内部转化是怎么进行的?解释一下输出结果,谢谢~~

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2010-05-23 14:15 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2010-05-23 14:21 |显示全部楼层
一块儿装得下最大数据的内存,你读出来爱怎么解释怎么解释。

论坛徽章:
0
发表于 2010-05-23 14:31 |显示全部楼层
内存存储十六进制
00 00 00 05 00 00 00 00

论坛徽章:
0
发表于 2010-05-23 14:34 |显示全部楼层
本帖最后由 bill15 于 2010-05-23 14:35 编辑

double二进制内存存储

````````符号位   阶码   尾数   长度
double       1     11    52       64

论坛徽章:
0
发表于 2010-05-23 14:34 |显示全部楼层
通过4-5楼算一下就可以了

论坛徽章:
0
发表于 2010-05-24 16:44 |显示全部楼层
union按最长的类型进行存储,系统自动转换数据,4,5L正解

论坛徽章:
0
发表于 2010-05-25 13:16 |显示全部楼层
这个应该是与存储方式有关的,就算分析也只是理论上的,真正的实现不一定与理论完全符合的。

论坛徽章:
0
发表于 2010-05-25 14:15 |显示全部楼层
就是一段0101组合,怎么解释都可以

论坛徽章:
0
发表于 2010-05-25 17:04 |显示全部楼层
怎样读就怎么解释呗!!因为放在内存里不是0就是1,至于这些0和1具体表示些什么,就看你怎么去用它!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP