Одна вещь, которую вы можете сделать, это скопировать байты данных.Для этого есть стандартная функция: std::memcpy
.Пример использования:
assert(sizeof pos.pos_x == 4);
std::memcpy(&pos.pos_x, data, 4);
assert(sizeof pos.pos_y == 8);
std::memcpy(&pos.pos_y, data + 4, 8);
Обратите внимание, что простое копирование данных работает, только если данные находятся в том же представлении, что и процессор.Поймите, что разные процессоры используют разные представления.Поэтому, если ваш readData
получает данные по сети, например, простая копия не очень хорошая идея.Наименьшее, что вам нужно сделать в таком случае, - это, возможно, преобразовать порядковый номер данных в исходный порядковый номер (вероятно, из большого порядкового номера, который обычно используется как порядковый номер сети).Преобразование из одного представления с плавающей запятой в другое намного сложнее, но, к счастью, IEE-754 довольно распространен.