使用例子
#include<stdio.h>int Callback_1(int x) // Callback Function 1
{printf("Hello, this is Callback_1: x = %d ", x);return 0;
}int Callback_2(int x) // Callback Function 2
{printf("Hello, this is Callback_2: x = %d ", x);return 0;
}int Callback_3(int x) // Callback Function 3
{printf("Hello, this is Callback_3: x = %d ", x);return 0;
}int Handle(int y, int (*Callback)(int))
{printf("Entering Handle Function. ");Callback(y);printf("Leaving Handle Function. ");
}int main()
{int a = 2;int b = 4;int c = 6;printf("Entering Main Function. ");Handle(a, Callback_1);Handle(b, Callback_2);Handle(c, Callback_3);printf("Leaving Main Function. ");return 0;
}
结果
Entering Main Function.
Entering Handle Function.
Hello, this is Callback_1: x = 2
Leaving Handle Function.
Entering Handle Function.
Hello, this is Callback_2: x = 4
Leaving Handle Function.
Entering Handle Function.
Hello, this is Callback_3: x = 6
Leaving Handle Function.
Leaving Main Function.
2、应用2
#include <stdio.h>typedef void(*Callback)(void *argv);void Echo_Info(const char *msg, Callback fn)
{if(NULL == msg){printf("msg = [null]\n");return ;}if(NULL == fn){printf("callback function is not defined!\n");return ;}fn((void *)msg);
}void Echo_Data(void *msg)
{if(NULL == msg){printf("msg = [null]\n");return ;}printf("msg = %s\n", (char*)msg);
}int main(int argc, char const *argv[])
{const char *msg = "hello world";Echo_Info(msg, Echo_Data);
}
运行结果
msg=hello world