typedef void* (*_add_elem)(shm_ds_t *ds, void *key, void *value, int size);
typedef void* (*_lookup)(shm_ds_t *ds, void *key);
typedef void (*_dump)(shm_ds_t *ds);
typedef int (*_compare)(void *key1, void *key2);
typedef struct shm_ds{
void *ds;
_add_elem shm_add_elem;
_lookup shm_lookup;
_dump dump;
_compare compare;
} shm_ds_t;
Sein Huhn und Ei Problem. Ich habe einige Callback-Fn-Zeiger definiert, die shm_ds_t
Typ verwendet, aber dieser Typ ist nach Callback-Definitionen definiert. Ähnlich, wenn ich die Reihenfolge ändere, meldet es das gleiche Problem mit Callback-Definitionen, die in diesem Fall vorher definiert werden sollen. Kann jemand bitte die Lösung vorschlagen?Kann mir jemand mit dieser Vorwärtsdeklaration in C helfen?
warum fügen Sie 'typedef struct shm_ds shm_ds_t' nicht hinzu? –
Warum der Downvote? – alk
OT: Das Suffix '_t' ist von POSIX reserviert. Um kompatibel zu POSIX zu bleiben, müssen Sie ein anderes Benennungsschema für Typen definieren. – alk