首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-18 
关于定义位位字段的一点,疑惑.请大家指教我.有点不明白:请您指教:structqq{inti:1//如果inti:100的话size

关于定义位位字段的一点,疑惑.请大家指教我.
有点不明白:请您指教:
              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呢?

[解决办法]
因为你只声明了一个变量i,计算机不能为任何数据类型只申请1个位,而qq作为结构必须符合数据对齐,而且前面声明的是int,所以只能把剩余的31位空间补上。

如果你这样写
struct qq
{
char i:1;
};
就是1个字节了。
[解决办法]
字节对齐

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

热点排行