给定C语言的数据结构struct T { int w; union T { char c;int i;double d;)U; };

16 查阅

给定C语言的数据结构struct T { int w; union T { char c;int i;double d;)U; }; 假设char类型变量的存储区大小是1字节,int 类型变量的存储区大小是4字节, double 类型变量的存储区大小是8字节,则在不考虑字对齐方式的情况下,为存储一个 struct T类型变量所需要的存储区域至少应为(15)字节。

A.4

B.8

C.12

D.17

参考答案:

C解析:在不考虑字对齐规则的情况下,C语言中一个结构体变量的存储区大小就是其所有成员所需存储区大小之和,一个联合体变量的存储区大小就是其各成员所需存储区大小中的最大者。因此题目中给定的联合体union T变量需要的存储区大小就是存储一个 double类型变量的大小(即8字节),struct T类型变量的存储区最小应为int 类型成员w存储区大小(4字节)与union T类型成员U的存储区大小之和,即12字节。

软考中级