问题
单项选择题
给定C语言的数据结构
假设char类型变量的存储区大小是1字节,int类型变量的存储区大小是4字节,double类型变量的存储区大小是8字节,则在不考虑字对齐方式的情况下,为存储一个struct T类型变量而需要的存储区域至少应为()字节。
A.4
B.8
C.12
D.17
答案
参考答案:C
解析:
本题考查C语言基础知识。
声明一个结构体类型的一般形式为
struct结构体名
{成员表列};
其中“结构体名”用作结构体类型的标志(structure tag)。大括号内是该结构体中的各个成员,由它们组成一个结构体。
结构体struct T成员表列包含:int w和union T。在不考虑字对齐的情况下,C语言中一个结构体变量的存储区大小是其所有成员存储区大小之和,一个联合体变量的存储区大小是其各成员所需存储区大小中最大值。
根据题意,联合体union T变量需要的存储区大小是8字节。struct T类型变量的存储区最小应为12字节。