background image

但此时所谓的整体是把 test1 中确定的那个最大的 X

 

拿出来来 确定 test2 的 X。 故

默认情况下,结构 test2 类型变量的大小为:20(test1 中最大的 X 被确定为 4,test2

中也为 4,t1 占 12

 

个字节, 在 c2 后又填充了 3 字节,总共 20 字节)。举个例子:

语言数据类型大小和结构体中变量

的地址分配方法

点击:

856   发布日期:2007-9-11 13:47:06   

进入论坛

    struct  test1  {char c1;        double  d;           char c2;}; 
    struct test2  { int i;      struct test1 t1;        char c2;}; 
    默认情况下,结构体 test2 的大小为 40(最大的 X 被确定为 8),强制 4 字节对

齐时大小为 24。其实这可以理解为编译器的另一条规则:结构体的大小必须为

其最大的那个 X 的整数倍。