Как можно вставить union в структуру?

Мне нужна структура в которой будут следующие данные:

typedef struct {
float   data[32];
int     size;
} Mcalc;

Но данные 'float data[32];' мне нужно представить в виде старших 2 байт int16_t float и младших 2 байт uint16_t float. Просто старшие два байта float пишутся в int16_t младшие два байта в uint16_t. Преобразование типа float ---> uint16_t не нужно.

Попытался сделать вот так:

typedef union {
    struct{
        int16_t  data_i[32];
        uint16_t data_ui[32];
    };
    float data_f[32];
} unionIntFloat; // Здесь пытался сделать объединение.

Но как можно заменить float data[32]; на unionIntFloat не понял.

Хочу что-то типа:

typedef struct {
unionIntFloat
int     size;
} Mcalc;

Ответы (1 шт):

Автор решения: Harry

Вы этого добиваетесь?

typedef union {
    float f;
    struct {
        unsigned short int lo, hi;
    };
} unionFloat;

typedef struct {
    unionFloat   data[32];
    int     size;
} Mcalc;
→ Ссылка