Спасибо, но нет. Не мой подход абсолютно! Во-первых, мне нужна
свобода добавления/отъёма полей из структур, составляющих кадр на
этапе компиляции. Проект развивается, и добавить байт/отнять байт
должно быть гладко, без ручного пересчёта размера члена. Доходит до того, что в тех местах, где сделано как в вашем примере (так тоже иногда делаю, по ситуации), приходится обкладываться (обычно, в ините) static_assert (sizeof(Status_t)==sizeof(uint16_t),"Проверь размер cтатуса");
А вот когда сделано корректными типами - оно получается автоматически. Главное, чтобы итоговая длина кадра в канал влезла.
Во-вторых, я за строгий контроль типов и стараюсь минимизировать приведения типов. Практически, у меня приведения типов лишь в пересылке данных. Остальное - по своим типам работает как объявлено.