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

来源:7-8 结构体的内存布局

嘤嘤鸣

2021-10-30

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

写回答

1回答

quickzhao

2021-10-30

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

0
2
quickzhao
回复
嘤嘤鸣
基本是这样。
2021-11-01
共2条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程