В общем мыши плакали, кололись, но....
Пока что у меня получилось примерно такое решение:
Код
typedef struct
{
unsigned char m[3];
}u24;
typedef struct
{
unsigned long code :12;
unsigned long galey :12;
} p24;
/// использование
struct
{
u24 a;
u24 b;
u24 c;
u24 d;
} test_24={{0x12,0x34,0x56},{0x78,0x9A,0xBC},{0xDE,0xF0,5},{7,8,9}};
unsigned int g,c;
c=(*(p24 *)&test_24.a).code; // c=0x0412
g=(*(p24 *)&test_24.b).galey; // g=0x0BC9
Или еще проще:
Код
typedef struct
{
unsigned long code :12;
unsigned long galey :12;
} p24;
/// использование
struct
{
unsigned char a[3];
unsigned char b[3];
unsigned char c[3];
unsigned char d[3];
} test_24={{0x12,0x34,0x56},{0x78,0x9A,0xBC},{0xDE,0xF0,5},{7,8,9}};
unsigned int g,c;
c=(*(p24 *)&test_24.a).code; // c=0x0412
g=(*(p24 *)&test_24.b).galey; // g=0x0BC9
Кривовато, но уже что-то...