回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
#include <stdio.h>
typedef struct
{
int status;
void (*fun1)();
}ST_TEST_T;
ST_TEST_T st_test;
void add_callback_fun(void(*user_fun)(int status));
void user_Callback(int status);
void main()
{
st_test.status = 11;
add_callback_fun(user_Callback);
st_test.fun1(st_test.status);
printf("test ended!\n");
}
void add_callback_fun(void(*user_fun)(int status))
{
st_test.fun1 = user_fun;
}
// user define function
void user_Callback(int status)
{
if (10 < status)
{
printf("success!\n");
}
else
{
printf("failed!\n");
}
}