#include <stdio.h>

#pragma pack(1)
typedef struct
{
	union
	{
		struct
		{
			unsigned int p1:4;
			unsigned int p2:2;
			unsigned int p3:4;
			unsigned int p4:6;
		};
	} u;
} A;

typedef struct
{
	union
	{
		struct
		{
			unsigned int p1:4;
			unsigned int p2:2;
			unsigned int p3:4;
			unsigned int p4:6;
		};
		unsigned int kk;
	} u;
} B;
#pragma pack()

int main()
{
	printf("%u\n", sizeof(A));

	B obj = {3, 2, 4, 5};

	printf("%02x %02x\n", ((char*)&obj)[1], ((char*)&obj)[0]);

	return 0;
}
