Soy un novato en C. Estoy tratando de implementar la función de devolución de llamada utilizando punteros a funciones.Implementación de funciones de devolución de llamada en C
estoy recibiendo un error
:test_callback.c:10: error: expected identifier or ‘(’ before ‘void’
cuando intento compilar el programa siguiente:
#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;
}
¿Qué es este error ¿Alguien puede ayudar?
'register' es una palabra clave, por cierto. –
¿En qué línea aparece el error? –
Solo un consejo: typedefs ayuda a que las cosas sean un poco más legibles: 'typedef void (* CallbackFunc) (void);'. Entonces la firma de su función es 'void registerFunc (CallbackFunc callback)' y sus declaraciones son 'CallbackFunc my_cb = & callback_proc' – detly