位域

#include <stdio.h>
#include <iostream>

using namespace std;

typedef struct AA
{
	int b1:5;
	int b2:2;
}AA;

int main()
{
	AA aa;
	char cc[100];
	strcpy(cc,"0123456789abcd");
	memcpy(&aa,cc,sizeof(AA));  //sizeof(AA) 是4, cc是 00110000 00110001 ...
	cout<<aa.b1<<endl;
	cout<<aa.b2<<endl;

	return 0;
}


VC的运行结果是:

-16

1

不过搞不明白:cc的头五位不是 00110 吗

你可能感兴趣的:(struct,include)