Ho una struttura con una funzione di callback, la funzione di callback ha bisogno di un puntatore alla struttura per fare la sua operazione. Come definisco correttamente questi elementi tale che verrà compilato senza avvisi?Come definire correttamente un puntatore a funzione in struct, che prende struct come un puntatore?
typedef struct {
// some fields required for processing...
int (*doAction)(struct pr_PendingResponseItem *pr);
} pr_PendingResponseItem;
Se rimuovo l'attributo "struct" sul parametro pr, viene visualizzato un errore. Se lo lascio, ricevo un avviso: "il suo ambito è solo questa definizione o dichiarazione, che probabilmente non è quello che vuoi"
Tutto funziona, ma mi piacerebbe sapere il modo corretto per definire tale una struttura
anche legato, è la definizione di una struttura auto referenziale:
typedef struct LinkedItem_ {
LinkedItem_ * prev;
LinkedItem_ * next;
void * data;
} LinkedItem;
(credo che questo è corretto, ma i pensieri aggiuntivi sono i benvenuti, se è legato alla domanda.)
Questa è l'unica risposta che in realtà ha identificato che è possibile inoltrare dichiarare il 'typedef'. –