---
typedef union {
    short s;
    long long ll;
} BasicUnion;

typedef struct {
    union {
        int i;
        float f;
    } as;
} StructWithUnion;

typedef union {
    unsigned int i : 31;
    unsigned char b : 1;
} Packed;