首页 > 其他 > 详细

结构体位制

时间:2014-03-24 16:17:54      阅读:573      评论:0      收藏:0      [点我收藏+]

一、使用:

  优点——节省空间;

  缺点——受大小端的限制,特别注意(建议用位运算取代之)。

二、注意三点:

1、只有unsigned型和int型(VC上long、short也没报错,???);

2、unsigned :0;//定义长度为0的位段时:(1)不能指定名字,否则编译不过(2)下一个位段从新的单元开始;

3、每个位段不能超过一个位单元的大小,否则编译过不去。

三、实例

bubuko.com,布布扣
1     struct A{//自身的对齐值为unsigned 4B
2         long a:3;
3         int b:23;//26bit,3B
4         unsigned c:6;
5         unsigned d:6;
6         char e;
7     } sa;
定义

struct A的自身对齐值是Max(sizeof(unsigned), sizeof(char))为4;

每个成员都赋值为3后的内存空间分布图:

0000 1100 0000 0000 0000 0000 0001 1011//a, b, c

____ ____ ____ ____ ____ ____ __00 0011//d

____ ____ ____ ____ ____ ____ 0000 0011//e注意:从下一个空间分配

结构体位制,布布扣,bubuko.com

结构体位制

原文:http://www.cnblogs.com/LFMY/p/3620408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!