No problem:
#pragma options align=packed
typedef struct {
union {
float floats[38];
uint32 longs[38];
uint16 words[76];
uint8 bytes[152];
} calData;
union {
float floats[38];
uint32 longs[38];
uint16 words[76];
uint8 bytes[152];
} usrData;
union {
float floats[35];
uint32 longs[35];
uint16 words[70];
uint8 bytes[140];
} netData;
float version;
uint8 state;
uint8 dataType;
uint8 hasUsrData; // both user and net data were downloaded
uint8 pad[3];
uint16 crc;
} TRG_DATA_TYPE;
#pragma options align=reset
And the data types are pretty standard:
typedef unsigned char uint8;
typedef unsigned short int uint16;
typedef unsigned long int uint32;