Если вам нужно записать такую структуру в сеть, пожалуйста, используйте структуру протокола или перенаправьте данные явно, используя протокол, который вы определяете независимо от структуры структуры.
В зависимости от подробностей двоичной структурыструктура, вероятно, вызовет боль в будущем.
Я слышал хорошие вещи о буферах протокола Google и Повышение сериализации , но я также не использовал их.
Я имел дело с протоколом, определенным в документе, и выводил данные в соответствии с этим протоколом, используя пользовательские процедуры маршалинга, или использовал описание IDL (что-то вроде аннотированной структуры C, которая использовалась для управлениягенератор кода, который создает подпрограммы сериализации / десериализации).
Таким образом, вы (или структура протокола) управляете использованием заполнения, независимо от того, что компилятор делает со структурой.Обратите внимание, что если вы используете инфраструктуру протокола, вам, как правило, нужно использовать ее на обоих концах (что может быть проблемой, если другой узел находится вне вашего контроля или встроенное устройство, которое, например, среда не поддерживает).