Vous pouvez transmettre-déclarer la structure:
/* Tell the compiler that there will be a struct called _sStruct */
struct _sStruct;
/* Use the full name "struct _sStruct" instead of the typedef'ed name
"sStruct", since the typedef hasn't occurred yet */
typedef void (callback)(int *p1, struct _sStruct *p2);
/* Now actually define and typedef the structure */
typedef struct _sStruct
{
callback *funct;
} sStruct;
Edit: Mise à jour pour correspondre à changement de noms de type de la question.
Aussi, je suggère fortement de ne pas donner à la structure l'identifiant _sStruct
. Les noms globaux commençant par _
sont des noms réservés, et leur utilisation pour vos propres identifiants peut entraîner un comportement indéfini.
Qu'est-ce que c'est «récurrent»? Voulez-vous dire déclaration circulaire ou auto-référencement? – progrmr