This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Union


I need to set up the following union type definition in a global header (.h) file

typedef union
{
struct
{
unsigned char App_Data_Type;

//Power on tests
unsigned char DPort_RAM_Fail_Flag :1;
unsigned char EEPROM_Fail_Flag :1;
unsigned char Watchdog_Fail_Flag :1;
unsigned char RAM_Fail_flag :1;
unsigned char Software_Build_Fail_Flag
:1;
unsigned char Backlight_Fail_Flag :1;
unsigned char Over_Temp_Fail_Flag :1;
unsigned char Spare_DV1 :1;

//Routine Flags
unsigned char Invalid_Message_Flag :1;
unsigned char Display_Blank_Flag :1;
unsigned char
Int_Light_Sensor_Fail_Flag :1;
unsigned char Temp_Sensor_Fail_Flag :1;
unsigned char
Ext_Light_Sensor_Fail_Flag:1;
unsigned char Spare_DV2:3;

//Comms Flags
unsigned char CAN_Bus_Off_Flag :1;
unsigned char Rx_Timeout_Error_Flag:1;
unsigned char Segmentation_Error_Flag
:1;
unsigned char Spare_DV3 :5;

//Reprogrammming Flags
unsigned char
Reprogramming_RAM_Fail_Flag :1;
unsigned char Spare_DV4 :7;

//Range checking flags
unsigned char
Time_And_Date_Range_Fail_Flag :1;
unsigned char
Status_Resp_Range_Fail_Flag :1;
unsigned char Spare_DV5 :6;

//Spare bytes
unsigned char Spare_DV6;
unsigned char Spare_DV7;
} tDefault_Variables_Response;

unsigned char bit_field_bytes[7];

} Def_Var;

However after declaring a variable instance

Def_Var_Mem Def_Var;

I get the compiler warning

"error C129 : missing ';' before 'Def_Var'"

Can any one tell me if the mistake is mine or the compilers please.

If the mistake is the compilers is there a workaround.