Tôi là người mới đến C. Tôi đang cố triển khai chức năng gọi lại bằng cách sử dụng con trỏ hàm.Thực hiện chức năng gọi lại trong C
Tôi nhận được một lỗi
:test_callback.c:10: error: expected identifier or ‘(’ before ‘void’
khi tôi cố gắng để biên dịch chương trình sau đây:
#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;
}
lỗi này là gì có ai có thể giúp?
'đăng ký' là từ khóa, BTW. –
Bạn gặp lỗi trên đường nào? –
Chỉ cần một mẹo: typedefs giúp làm cho mọi thứ dễ đọc hơn một chút: 'typedef void (* CallbackFunc) (void);'. Sau đó, chữ ký hàm của bạn là 'void registerFunc (CallbackFunc callback)' và các khai báo của bạn là 'CallbackFunc my_cb = & callback_proc' – detly