Junior — Middle
Milliseid meetodeid teate objektide teisendamiseks baitideks või muuks formaadiks edastamiseks või salvestamiseks?
sobes.tech AI
Vastus AI-lt
Objektide muutmine baitide jadasse või teise formaati edastamiseks või salvestamiseks nimetatakse serialiseerimiseks. C/C++ keeles kasutatakse selleks mitmeid meetodeid:
- Käsitsi serialiseerimine: ise kirjutada strukturi või klassi väljad pihustisse, arvestades joondamist ja baitide järjekorda.
- Standardfunktsioonide kasutamine: näiteks
memcpy, andmete kopeerimine baitide massiivi. - Binaarfailid: näiteks Protocol Buffers, FlatBuffers, mis pakuvad mugavaid API-sid serialiseerimiseks ja deserialiseerimiseks.
- Tekstivormingud: JSON, XML — objekti teisendamine tekstivormingusse.
Näide lihtsast käsitsi serialiseerimisest C++-s:
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));
}
Oluline on arvestada baitide järjekorda (endianess) ja joondust, kui andmeid edastatakse erinevate süsteemide vahel.