问题
单项选择题
给定C语言的数据结构
假设char类型变量的存储区大小是1字节,int类型变量的存储区大小是4字节,double类型变量的存储区大小是8字节,则在不考虑字对齐方式的情况下,为存储union T类型成员U所需要的存储区域至少应为()字节。
A.4
B.8
C.12
D.17
答案
参考答案:B
解析:
[要点解析] 在不考虑字对齐规则的情况下,C语言中一个结构体变量的存储区大小就是其所有成员所需存储区大小之和,一个联合体变量的存储区大小就是其各成员所需存储区大小中的最大者。因此题目中给定的联合体union T变量需要的存储区大小就是存储一个double类型变量的大小(即8字节)。而对于struct T类型变量的存储区最小应为int类型成员w存储区大小(即4字节)与union T类型成员U的存储区大小之和,即12字节。