请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Score这个联合体的size为什么是8个字节

老师,
请问在Score这个联合体的size为什么是8个字节?按理说score里有一个double型占8个字节,一个char占一个字节,那应该是总共占16个字节才对。但我看你的代码演示里确实占了8个字节,这个char的值写到了分配给double值的8个字节区域。那如果这个double值足够大,刚好占满8个字节呢,那char的值岂不是要被覆盖掉?

正在回答 回答被采纳积分+3

1回答

quickzhao 2021-10-30 23:31:43

注意,这里的Score是union,它的空间是共享的,以最大类型的尺寸为准。不会出现你说的覆盖,因为你只会在一种目的上用它。比如你计分时或者按照字符类型计,或者按照浮点型计,不会同一时刻两种都用到。

0 回复 有任何疑惑可以回复我~
  • 提问者 嘤嘤鸣 #1
    明白了,关键是这一点:在任意时刻,联合中只能有一个数据成员可以有值。当给联合中某个成员赋值之后,该联合中的其它成员就变成未定义状态了。
    回复 有任何疑惑可以回复我~ 2021-11-01 14:50:02
  • quickzhao 回复 提问者 嘤嘤鸣 #2
    基本是这样。
    回复 有任何疑惑可以回复我~ 2021-11-01 16:09:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信