typedef union 
{
struct
{
BYTE FrameInfo; // CAN address 16
union
{
BYTE ID[2]; // CAN address 17-18
short id;
};
BYTE Data[8]; // CAN address 19-26
 
} SFF;
struct
{
BYTE FrameInfo; // CAN address 16
BYTE ID[4]; // CAN address 17-20
BYTE Data[8]; // CAN address 21-28
} EFF;
} MessageFrame;b.id = a.id;