C语言 关于sizeof问题

void main(){
struct
{
int m1;
char m2;
float m3;
union uu{
char u1[5];
int u2[2]
}ua;

}myaa;
}

sizeof(struct Test) 的值是 12
为什么呢? 怎么算的?

我来回答你的问题:
sizeof函数的意思是统计变量长度。
int的长度长2个字节;
char的长度长1个字节;
float的长度长4个字节;
union uu{
char u1[5];
int u2[2]
}ua的长度取决于其中成员中最长的变量的字节长度,在这里为char类型,共五个元素值,长度为5。
那么开始统计总长度也就是2+1+4+5=12;
希望你明白,祝您开心,很荣幸为您回答问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-22
int 2b+char 1b+float 4b +char [5] 5b = 12b
联合体是指多个变量共享同一个起始地址。联合体的总字节数为占字节数最多的变量的字节数。
如该例中的char u1[5]占了5byte比int u2[2]多一个字节。
第2个回答  2011-04-22
不知道你怎么算的。我在VS2010上试了试,结果应该是20
第3个回答  2011-04-22
int 占2个字节 char占1个字节 float 占4个字节 加上公用体中的char类型的数组5个 再加上int的数组2个字节 一共是12个字节
第4个回答  2011-04-22
共用体的长度等于里面最长的成员长度,所以共用体里面的 char u1[5],最长,所以,他的总长度为2+1+4+5=12,谢谢,祝您周末愉快~
第5个回答  2011-04-22
这里面应该int占两位,这样算就对了,2+1+4+5

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网