typedef struct
{
int m1i1;
int m1i2;
char* m1p1;
} mess_1;
typedef struct
{
int m_type;
long m_source;
union {
mess_1 m_m1;
mess_2 m_m2;
} m_u;
} message;
message msg;
Access the m1i2 member of msg and assign the value 5:
msg.m_u.m_m1.m1i1 = 5;
Here is a more complete example.