Back to questions
Junior — Middle
85
Какими способами ты знаешь преобразование объектов в последовательность байт или иной формат для передачи или хранения?
Answer from AI
sobes.tech AI
Преобразование объектов в последовательность байт или другой формат для передачи или хранения называется сериализацией. В C/C++ для этого используют несколько способов:
- Ручная сериализация: самостоятельно записать поля структуры или класса в буфер, учитывая выравнивание и порядок байт.
- Использование стандартных функций: например,
memcpyдля копирования данных в байтовый массив. - Бинарные форматы: например, Protocol Buffers, FlatBuffers, которые предоставляют удобные API для сериализации и десериализации.
- Текстовые форматы: JSON, XML — преобразование объекта в строковое представление.
Пример простой ручной сериализации структуры в C++:
struct Point {
int x;
int y;
};
void serialize(const Point& p, char* buffer) {
memcpy(buffer, &p.x, sizeof(int));
memcpy(buffer + sizeof(int), &p.y, sizeof(int));
}
void deserialize(const char* buffer, Point& p) {
memcpy(&p.x, buffer, sizeof(int));
memcpy(&p.y, buffer + sizeof(int), sizeof(int));
}
Важно учитывать порядок байт (endianess) и выравнивание при передаче между разными системами.