结构体的大小

首先了解32位系统的类型大小:

char 1;short 2;int 4;long 4(应该是计算方式不一样);float 4,;double 8;*p 地址 4。

结构体的大小规则:

1、空间是最大‘基本’类型的倍数。

2、以最大‘基本’类型进行区域划分空间,然后分配内存。比如最大类型double,然后划出8*n的空间,然后装数据,

如第一一个结构体:

typedef struct demos

{

      char a;

      short d;
      int b;
      short c;
};

空间是:a,xx,d1,d2,b1,b2,b3,b4,c1,c2,xx,xx。他的长度为12。

typedef struct abc
{
 char a;
 demos b;
}abc1;

空间是:abc.a,xx,xx,xx,demos.a,xx,d1,d2,b1,b2,b3,b4,c1,c2,xx,xx。16个字节

你可能感兴趣的:(结构体的大小)