lz这样的代码经常在结构里面用到,冒号后面的数字表明的是所占位宽,主要是为了节省存储空间。比如:
struct message_header
{
unsigned char aa :1;
unsigned char bb :1;
unsigned char cc :1;
unsigned char dd :1;
unsigned char ee :4;
};
这样一来,整个结构就只需要1个字节,也就是8位(1 + 1 + 1 + 1 + 4)就够了。这样在诸如设置掩码之类的地方特别方便。
.
像你的那段代码就只需要1个32位(1 + 31)的int型存储空间就够了,而不需要2个32位的int空间。
[
本帖最后由 prankmoon 于 2009-9-5 00:24 编辑 ]