I am a newbie to C. I am trying to implement callback function using function pointers.
I am getting an error
:test_callback.c:10: error: expected identifier or ‘(’ before ‘void’
when I try to compile the following program:
#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;
}
What is this error?Can anyone help?
registeris a keyword, BTW.typedef void (*CallbackFunc)(void);. Then your function signature isvoid registerFunc(CallbackFunc callback)and your declarations areCallbackFunc my_cb = &callback_procvoid callback_proc ()is NOT THE SAME asvoid callback_proc (void)in C.