Я бы всё же "для гарантии" разместил поля в пределах одной
переменной... Вот такая структура, сначала тупанул всё как uint64_t сделал. Там мне и поля местами перетусовались и в байты оно не упаковалось.

Для char может прокатит. Но надо знать стандарт чтобы верить в это )) Лучше явно прописать.
А на современных процах столько силов, что беспокоиться за накладные при обращении к полям - смешно просто.
Собственно как смешны и битовые поля если речь не идет о каком-то протоколе где всё на битики раскидано.