Junior — Middle
Welche Methoden kennen Sie, um Objekte in eine Byte-Sequenz oder ein anderes Format für Übertragung oder Speicherung umzuwandeln?
sobes.tech KI
Antwort von AI
Die Umwandlung von Objekten in eine Byte-Sequenz oder ein anderes Format für die Übertragung oder Speicherung wird Serialisierung genannt. In C/C++ werden dafür verschiedene Methoden verwendet:
- Manuelle Serialisierung: Manuelles Schreiben der Felder einer Struktur oder Klasse in einen Puffer unter Berücksichtigung der Ausrichtung und Byte-Reihenfolge.
- Verwendung standardmäßiger Funktionen: z.B.
memcpy, um Daten in ein Byte-Array zu kopieren. - Binäre Formate: z.B. Protocol Buffers, FlatBuffers, die praktische APIs für Serialisierung und Deserialisierung bereitstellen.
- Textbasierte Formate: JSON, XML — Umwandlung eines Objekts in eine String-Darstellung.
Beispiel für eine einfache manuelle Serialisierung einer Struktur in 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));
}
Es ist wichtig, die Byte-Reihenfolge (Endianess) und die Ausrichtung bei der Übertragung zwischen verschiedenen Systemen zu berücksichtigen.