в массив с типом uint16_t?
Например, есть массив:
uint8_t array_8[4] = {1, 2, 3, 4};
Хочу получить:
uint16_t array_16[2];
// array_16[0] = 12
// array_16[1] = 34
Ещё можно так: var_32 = *(uint32_t *)array_8; Просто моя IDE старшие биты при просмотре обрезала, если они нули. Не заметил, вот и думал, что этот способ ошибочный.
Вот так как раз сишный стандарт делать запрещает. На практике это может работать долгое время, а потом неожиданно сломаться
Читайте про effective types и aliasing
Обсуждают сегодня