#include <stdio.h>

int main()
{
	union {
		unsigned x;
		struct {
			unsigned a:1;
			unsigned b:1;
			unsigned c:1;
			unsigned d:1;
		};
	} u;
	union {
		unsigned xx;
		struct {
			unsigned aa:1;
			unsigned bb:1;
			unsigned cc:1;
			unsigned dd:1;
		};
	} uu;
	unsigned FLAG;

	u.a = u.b = u.c = u.d = 0;
	uu.aa = uu.bb = uu.cc = uu.dd = 0;

	FLAG = ~u.x & uu.xx;
	printf("%#x\n", FLAG);

	uu.dd = 1;
	FLAG = ~u.x & uu.xx;
	printf("%#x\n", FLAG);

	return 0;
}
