Я новичок C. Я пытаюсь реализовать функцию обратного вызова с помощью указателей функций.Реализация функций обратного вызова в C
Я получаю сообщение об ошибке
:test_callback.c:10: error: expected identifier or ‘(’ before ‘void’
, когда я пытаюсь собрать следующую программу:
#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;
}
Что эта ошибка Может кто-нибудь помочь?
'register' - ключевое слово, BTW. –
В какой строке вы видите ошибку? –
Просто подсказка: typedefs помогают сделать вещи более читабельными: 'typedef void (* CallbackFunc) (void);'. Тогда ваша сигнатура функции - 'void registerFunc (callbackFunc callback)', и ваши объявления - 'CallbackFunc my_cb = & callback_proc' – detly