位段的小实验

用位段做了个实验,在此写为文章,以作以后复习使用。

typedef struct
{
	unsigned a1 : 1;
	unsigned a2 : 1;
	unsigned a3 : 1;
	unsigned a4 : 1;
	unsigned a5 : 1;
	unsigned a6 : 1;
	unsigned a7 : 1;
	unsigned a8 : 1;
	unsigned a9 : 1;
	unsigned a10 : 1;
	unsigned a11 : 1;
	unsigned a12 : 1;
	unsigned a13 : 1;
	unsigned a14 : 1;
	unsigned a15 : 1;
	unsigned a16 : 1;
	unsigned a17 : 1;
	unsigned a18 : 1;
	unsigned a19 : 1;
	unsigned a20 : 1;
	unsigned a21 : 1;
	unsigned a22 : 1;
	unsigned a23 : 1;
	unsigned a24 : 1;
	unsigned a25 : 1;
	unsigned a26 : 1;
	unsigned a27 : 1;
	unsigned a28 : 1;
	unsigned a29 : 1;
	unsigned a30 : 1;
	unsigned a31 : 1;
	unsigned a32 : 1;
}BIT;
这是一个有32个成员的结构体,每个成员占1bit.按照内存对齐的算法,应该正正好对应一个int型。

int main(int,char**)                                                                                                       
{
	BIT b;
	b.a1 = 1;//此处赋值奇数都可以,因为只取最后一个bit 1
	b.a2 = 0;
	b.a3 = 0;
	b.a4 = 0;
	b.a5 = 0;
	b.a6 = 0;
	b.a7 = 0;
	b.a8 = 0;
	b.a9 = 0;
	b.a10 = 0;
	b.a11 = 0;
	b.a12 = 0;
	b.a13 = 0;
	b.a14 = 0;
	b.a15 = 0;
	b.a16 = 0;
	b.a17 = 0;
	b.a18 = 0;
	b.a19 = 0;
	b.a20 = 0;
	b.a21 = 0;
	b.a22 = 0;
	b.a23 = 0;
	b.a24 = 0;
	b.a25 = 0;
	b.a26 = 0;
	b.a27 = 0;
	b.a28 = 0;
	b.a29 = 0;
	b.a30 = 0;
	b.a31 = 0;
	b.a32 = 0;
	printf("%d\n",b);
	system("pause");
	return 0;
}
显示结构是 1 。也可以说明我的机器是小端字节序的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值