Сторона, передающая разнородные данные, упаковывает (сериализует) их в байтовый поток сообразно своим установкам - endiannes, align, pack и т. п. Возможно, что округление смещения полей uint32_t до 4-х уже учтено при формировании структуры пакета, и это было бы наиболее грамотным решением. В любом случае, вам должен быть известен алгоритм сериализации. Вы пишете десериализацию байтового потока обратно в разнородные данные на известном вам процессоре - вам и карты (описание потока) в руки. Если офсеты полей uint32_t кратны 4 - то достаточно приведения типа указателя, если нет - придется городить десериализацию. В любом случае, универсального решения тут не будет, даже в случае memcpy() можно напороться на разный endiannes и т. д.
--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
|