Sono un novizio di C. Sto cercando di implementare la funzione di callback utilizzando i puntatori di funzione.Implementazione delle funzioni di callback in C
sto ottenendo un errore
:test_callback.c:10: error: expected identifier or ‘(’ before ‘void’
quando provo a compilare il seguente programma:
#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;
}
Che cosa è questo errore Chiunque può aiutare?
'register' è una parola chiave, BTW. –
In quale riga viene visualizzato l'errore? –
Solo un suggerimento: typedef aiuta a rendere le cose un po 'più leggibili: 'typedef void (* CallbackFunc) (void);'. Quindi la firma della funzione è 'void registerFunc (CallbackFunc callback)' e le tue dichiarazioni sono 'CallbackFunc my_cb = & callback_proc' – detly