void PrintMessage(int i);
void ShowMessage(void (* ptr)(int), int par);
int main()
{
ShowMessage(PrintMessage, 3);
return 0;
}
void PrintMessage(int i){
printf("This is the message [%d]\n",i);
}
void ShowMessage(void (* ptr)(int), int par){
(* ptr)(par);
}
方式二:采用多接口出入处理
#include <stdio.h>
#include <string.h>
typedef int (* CallbackFunT)(void *parameter);
int Printcallback(void *parameter);
int Callback_Test(CallbackFunT callbackFunc, void *parameter);
//多种接口回调函数
int Printcallback(void *parameter){
int *i = 0;
i = (int *)parameter;
printf("This is the message [%d]\n",i);
return 0;
}
int Callback_Test(CallbackFunT callbackFunc, void *parameter)
{
int iRet = 0;
if (callbackFunc == NULL)
{
return 1;
}
iRet = callbackFunc(parameter);
if (iRet != 0)
{
return iRet;
}
return 0;
}
int main()
{
int num = 2;
//回调函数测试
Callback_Test(Printcallback, (void *)num);
return 0;
}