struct 、union的使用以及字节对齐机制、补齐机制

 

题目1:

struct test{

     char a;    1+3

      int    b;    4

  }  Test;

sizeof(Test)  = 8;

题目2:

struct test{

      char a;    1+3

      int    b;     4

      char  c;     1+3(补齐)

}Test;

sizeof(Test)  = 12;

题目3:

struct test {

      char a[18];   18 + 6 (18不是8的倍数,加6)

      double b;      8

      char     c;      1 +3(1不是4的倍数,加3)

      int         d;     4

      short     e;     2 +6(2不是8的倍数,前面cd已形成8字节组合,所以自己应加6)

}Test;

sizeof(Test)  = 48

 

 

 

 

题目4:

struct test{

     char a;        1+7

     double b;    8

     char  c;       1+3

     int     d;       4

}Test;

sizeof(Test) = 24;

题目5:

struct test{

      char a;       1+7

      double b;    8

      short c;       2+6

}Test;

sizeof(Test) = 24;

题目6:

struct test{

      char a;      1 + 3

      int    b;      4

      double c;  8

      char     d;  1+7

}Test;

sizeof(Test) = 24;

 

字节对齐:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值