• [^] # Re: ça marche !

    Posté par . En réponse au journal Et Dieu inventa le soutien gorge !. Évalué à 5.

    Moi, je me serait contenté d'une liste chainée simple de pointeur de fonctions dans le genre :

    struct layer {
    void (*next_func)(struct layer*, ...);
    struct layer* next_layer;
    };

    Sauf que chaque couche à sa propre structure avec ses propres données. Donc tu vas avoir :

    struct layer {
     void (*next_func)(struct layer *);
     void * opaque; /* ta structure pour les données nécessaire à ta couche */
     struct layer * next;
    };
    
    

    Et ça devient moins clair. On un void dans la structure au lieu d'un joli type qui nous guide dans le code. Ensuite, avec un petit jeu de fonctions, la partie pour traverser les couches va devenir une petite bibliothèques (à grand coup de macros). En utilisant la méthode du noyau, l'utilisateur de la bibliothèque peut facilement placer où il veut, en mémoire, ses structures, la bibliothèque n'en n'est pas gênée. Et quand tu n'as pas de MMU, ça peut aider.

    "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell