您的位置:程序门 -> c/c++ -> c++ 语言



关于定义位位字段的一点,疑惑.请大家指教我.


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于定义位位字段的一点,疑惑.请大家指教我.[已结贴,结贴人:longweipeng]
发表于:2007-06-27 17:52:25 楼主
有点不明白:请您指教:
              struct   qq
              {
                int   i:1;//如果int   i   :   100的话sizeof输出16个字节,这一点可以说的过去
              };
              qq   kk;
              kk.i=100;
              cout < <kk.i < <endl;
              cout < <sizeof(kk) < <endl;
既然为一个位了,怎么输出sizeof(kk)还是4呢?
发表于:2007-06-27 18:35:031楼 得分:18
因为你只声明了一个变量i,计算机不能为任何数据类型只申请1个位,而qq作为结构必须符合数据对齐,而且前面声明的是int,所以只能把剩余的31位空间补上。

如果你这样写
struct   qq
{
char   i:1;
};
就是1个字节了。
发表于:2007-06-27 21:45:292楼 得分:2
字节对齐

你可以到网上搜,很多资料


快速检索

最新资讯
热门点击