Bei solchen Problemen heisst das Zauberwort: "union"

Hier mal ein Beispiel:
Code:
typedef union
{
	uint16_t Raw;

	struct
	{
		uint16_t Command : 6;
		uint16_t Address : 5;
		uint16_t Toggle  : 1;
		uint16_t Field   : 1;
		uint16_t Start   : 1;
	} Structured;
} type_RC5_Frame;
In diesem Fall kann auf den gleichen Speicherbereich wahlweise per "Structured" als Bitfeld, oder aber per "Raw" an einem Stück zugegriffen werden