Je suis un novice de C. J'essaie d'implémenter la fonction de rappel en utilisant des pointeurs de fonction.Implémentation des fonctions de rappel dans C
Je reçois une erreur
:test_callback.c:10: error: expected identifier or ‘(’ before ‘void’
lorsque je tente de compiler le programme suivant:
#include<stdio.h>
void (*callback) (void);
void callback_proc()
{
printf ("Inside callback function\n");
}
void register ((void (*callback) (void)))
{
printf ("Inside registration \n");
callback(); /* Calling an initial callback with function pointer */
}
int main()
{
callback = callback_proc;/* Assigning function to the function pointer */
register (callback);/* Passing the function pointer */
return 0;
}
Quelle est cette erreur Quelqu'un peut-il aider?
'register' est un mot-clé, BTW. –
Sur quelle ligne obtenez-vous l'erreur? –
Juste un conseil: typedefs aide à rendre les choses un peu plus lisibles: 'typedef void (* CallbackFunc) (void);'. Ensuite, la signature de votre fonction est 'void registerFunc (CallbackFunc callback)' et vos déclarations sont 'CallbackFunc my_cb = & callback_proc' – detly