La sérialisation de l'objet de tableau d'octets en C++

Je suis en train de travailler sur un dispositif intégré (microcontrôleur), et je veux sauver les objets de mémoire permanente (EEPROM). La plupart de la sérialisation des solutions que je peux trouver, utiliser le système de fichier d'une certaine façon, mais mon objectif n'a pas de système de fichier.

Donc ma question est, comment puis-je sérialiser un objet à un tableau d'octets, donc je peux enregistrer que le tableau d'octets à une EEPROM par la suite?

Voici un exemple de ce que je suis en train de faire:

class Person{
     //Constructor, getters and setters are omitted

    void save(){
         char buffer[sizeof(Person)]; 
         serialize(buffer);
         EEPROM::Save(buffer, sizeof(Person)); 
    }

    void load(){
         char buffer[sizeof(Person)]; 
         EEPROM::Load(buffer, sizeof(Person));
         deserialize(buffer);
    }

    void serialize(char* result){
        //?????
    }

    Person deserialize(char* buffer){
        //??????
    }

private:
    char* name;  
    int   age; 
    float weight; 
};
le moyen le plus facile pour sérialiser des données est d'ajouter des séparateurs, mais qui dépend des données que vous souhaitez pour sérialiser. Normalement, vous devriez être capable de lire/écrire votre tampon d'octets et de stocker le même chemin dans votre EEPROM

OriginalL'auteur Jolle | 2014-10-13