一道关于C的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 06:18:57
给定C语言的数据结构
struct T {
int w;
union T { char c; int I; double d; } U;
};
假设char类型变量的存储区大小是1字节,int 类型变量的存储区大小是4字节,double类型变量的存储区大小是8字节,则在不考虑字对齐方式的情况下,为存储一个struct T类型变量所需要的存储区域至少应为 ( ) 字节
A. 4 B. 8 C. 12 D. 17
怎么算的,别只说个C

C.Union占用的字节按照最长的那个算,Struct占用的字节为所有成员占用字节之和,所以4+8=12

C

C

************************************

从题目所给出的备选答案来看,在这里,int类型占4字节,所以,w占4字节
在union T中,char c占用1字节,int I占用4字节,double d占用8字节,所以整个union T占用8字节。

所以8+4=12字节