结构体位域

  位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进
制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储
空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。
如:
struct str{
int a:8; //字段a占用一个字节,即8bit
char c:7; //字段c占用7bit
};
例:

/////////////////////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <string.h>

struct str{
int a:8;
char c:7;
}s1;
void main()
{
printf("sizeof(s1):%d\n",sizeof(s1));
}
结果:
sizeof(s1):4
说明:因为int占4字节,而str中的a在内存中占1字节,不够4字节,所以看剩下的3字节能否
存储下一个变量,若能,则接着存储,不能则在下一个单元存储。

/////////////////////////////////////////////////////////////////////////////////////////////////////

posted @ 2017-07-26 10:22  第五  阅读(221)  评论(0编辑  收藏  举报