结构体大小

来源:互联网 发布:手机淘宝联系天猫客服 编辑:程序博客网 时间:2024/05/29 09:29

下面结构体

struct s1

{

 char ch,*ptr;

 union

 {

  short a, b;

  unsigned int c:2, d:1;

 };

 struct s1 *next;

};

sizeof(struct s1)是:(16字节)

这个呢,char ch一个字节,char *ptr四个字节,共用体里面short a,b都是两个字节,unsigned int 后面c d 虽然占了三个位,但是前面是int型,所以为四个字节,联合体总共就为四个字节,下面的 struct s1 *next是四个字节,总共加起来就是 1 + 4 + 4 + 4 = 13 但是为了保证结构体字节数为4的倍数,所以最后为13 + 3 = 16字节