C_and_CPP 板


LINE

union Data { int b; double c; }; union Data data; data.b = 10; printf("%f\n",data.c); 看完了别人的部落格,觉得自信满满懂了 union 自己测试後,跟预期的答案不一样...自己还是完全不懂 我预期是 10.000000 b c共用记忆体,操作 data.b = 10 後,data.c 完全可以存下10,显示出来应该是 10.000000阿... 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.220.69.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1533267423.A.544.html
1F:推 Hazukashiine: 是个自信满满的孩子呢(抱 08/03 11:40
2F:推 jerryh001: 浮点数和整数储存格式不一样 08/03 11:44
3F:→ blueblueChen: 那假设 union 内是个 char 和 int呢? 08/03 11:49
4F:→ blueblueChen: data.a = 'x'; printf("%d\n",data.b); 也是完全不 08/03 11:49
5F:→ blueblueChen: 如预期 08/03 11:50
6F:→ sarafciel: 你的预期是啥XD 08/03 11:52
7F:推 Killercat: 我觉得每个写C/C++的应该要把IEEE754列为必修.... 08/03 12:01
8F:→ Killercat: IEEE754看一次可以搞懂很多问题 08/03 12:02
9F:→ blueblueChen: 我的预期是 data.b = 120..... 08/03 12:23
10F:推 stupid0319: 计概老师常常请假吗 08/03 12:29
11F:推 boss0405: 不是120可能是你的char只用到1byte,其他memory是非0, 08/03 13:04
12F:→ boss0405: 你可以把union Data data;换成global variable看看 08/03 13:05
13F:→ blueblueChen: boss ,你的建议非常有用。是不是他宣告为 global 08/03 13:21
14F:→ blueblueChen: 就是在 .bss 区块,系统会自动初始为0 08/03 13:21
15F:→ sarafciel: 同页23148那篇有你要的答案 建议看看 08/03 13:33
16F:→ sarafciel: 还是不懂请google IEEE754跟little endian XD 08/03 13:35
17F:推 boss0405: 是的,bss sec要初始成0 08/03 15:27
18F:→ blueblueChen: 谢了..我听了各位大大的建议去读了IEEE754都懂了 08/03 15:58
19F:→ blueblueChen: 回到原问题 b=0x0A,用double(8byte)去表示,IEEE 08/03 16:19
20F:→ blueblueChen: 转换後,用格式化输出 %f 为 0.000000 08/03 16:20
21F:→ djshen: 你要不要自己算算看那个数有多小 08/03 18:48
22F:推 cutekid: 5e-323 08/03 20:49
23F:推 remember: 读懂ieee745啊 厉害 08/03 21:04
24F:→ Killercat: 那东西很难懂吗 = = 不就解释FLOAT怎麽表示而已 08/06 12:02
25F:→ Killercat: 到是上面有人提到重点 他还有little endian的问题 08/06 12:03
26F:推 alan23273850: 那如果两个变数都是 int 呢 08/07 17:19
27F:→ alan23273850: 刚刚试了一下,就没问题了呢 08/07 17:22
28F:推 jerryh001: 两个都int那union的意义在哪 08/07 21:46
29F:→ sarafciel: 你可以得到一个真正的别名 而不是像reference一样的假 08/08 12:43
30F:→ sarafciel: 别名真指标 不但省了记忆体空间 而且不用& 抽象更好理 08/08 12:45
31F:→ sarafciel: 解 以上都是我唬烂的 不要当真(逃) 08/08 12:46







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP