注册 登录
编程论坛 C++教室

一个奇怪的sizeof(结构体)的问题

cc2005726 发布于 2010-06-12 16:19, 815 次点击
程序如下:
int main()
{
    struct AAA
{
 double d;
 char ss;
 };
struct B
{
 float a;
 struct AAA;
};

 
 printf("%d,%d",sizeof(AAA),sizeof(B));//输出8 8
 
 return 0;
}

sizeof(AAA)的结果是16,这个没错
但是sizeof(B)的结果是4,这是为什么啊?
sizeof(B)好像没有计算其中成员AAA的大小啊?
3 回复
#2
debroa7232010-06-12 20:53
它是不会计算AAA的大小,因为AAA不是成员变量。
struct B
{
float a;
AAA m_AAA;
};
#3
南国利剑2010-06-12 23:16
同意楼上,
楼主这么定义结构体B是无法在B中使用AAA的对象的,因为你根本没有定义了。
而只有定义了变量才会分配空间。
#4
cc20057262010-06-13 10:09
回复 2楼 debroa723
哦,是了,谢谢你
1