Я пишу код для Linux, работающего на архитектурах Intel x86 и x64 (по крайней мере!) С дампом gcc и чтением структур данных из памяти на диск, как дешевый способ добиться сериализации. В каждом поле не должно быть дополнительного отступа.
Для этого я тщательно организовал структуры так, чтобы каждое поле имело столько битов, сколько им нужно для хранения информации, и выровняло их вручную до границ 4 байта (это должно быть восемь?).
Я начал изучать множество целочисленных модификаций (int
, long int
, long long int
, unsigned long long int
и т. Д.), Но не нашел определенного источника по этому вопросу (и получение информации о конструкциях с помощью фиктивных программ скучно и утомительно и специфично для моего оборудования.)
При этом мне нужно, чтобы некоторые поля были 16 битами, некоторые поля были 32 битами, а некоторые - 64 битами. Есть ли способ добиться этого?