Цитата(Jenya7 @ Jan 19 2017, 11:58)
до сих пор я все поля делал uint32_t хотя у меня есть члены структуры для которых uint8_t достаточно. у меня есть довольно большая структура и есть массив этой структуы который отжирает много места в RAM. если я перейду с uint32_t на uint8_t я сэкономлю много места. но тогда компайлер будет выполнять операции boxing/unboxing?
Я решаю аналогичную задачу (запись архива событий, записи различных форматов и различной длины).
Чтобы не делать запись всегда из максимально-используемой длины,
используя "замес" из структур типов-форматов-ABC в структуре, объединенных union { char[30] или str_A или str_B или str_C или . . . . )
ABC определены как типы.
Как вариант, можно ваш супер-массив преобразовать в массив указателей на массивы структур, или их элементы,
каждый из которых будет содержаться в "своем", оптимизированном под нее по размеру.