C: Funktionszeiger innerhalb eines typedef struct

Ich versuche zu erstellen, die eine verknüpfte Liste in C versuchen aber pack es schön in etwas einer C++ - Stil Klasse. Ich habe einige Probleme mit Funktionszeigern in C

typedef struct linkedList {
    int count;
    struct msgNode *front;
    struct msgNode *back;
    void (*addMSG)(unsigned char *, int, struct linkedList *);
} msgList;

void addMSG(unsigned char *data, int size, struct linkedList *self);

Im Idealfall würde ich mag, um es so dass Sie machen können Sie Liste aus, und klicken Sie auf hinzufügen, können Sie einfach rufen Sie eine "Methode"(Funktion) innerhalb der Struktur, die Simulation von Verhalten, die Sie sehen würde, in C++.

Derzeit bekomme ich einen segmentation fault, wenn ich rufe addMSG, die natürlich ist, weil addMSG ist nicht nur ein Zeiger auf eine Funktion. Aber ich will nicht zu haben, um eine Funktion anzugeben, zeigen Sie auf jedes einzelne Zeit, die ich möchte verwenden eine verknüpfte Liste. Gibt es eine nette Möglichkeit zu haben, Funktionszeiger, ohne implizit mit hinweisen auf die Funktion, oder haben Sie implizit verweisen Sie auf die Funktion?

Dies ist nur die teilweise Umsetzung, die hier gezeigt werden. Am Ende dieses struct wird über alle notwendigen Funktionen. Dies ist nur für den Willen halten diese Frage kurz und auf den Punkt.

Du bist das erstellen von unnötigen dynamischen overhead. Wenn Sie wollen, schreiben Sie in C, die Sie annehmen sollten, C Idiome und schreiben Sie mit normalen Funktionen.
In einer vorherigen Antwort von mir, erkläre ich im detail, wie dies getan werden kann, in einer Weise, dass tatsächlich unterstützt dynamische Disposition.

InformationsquelleAutor Edwin | 2013-09-26

Schreibe einen Kommentar