回调函数
标准Hello World程序:
-------------------------------------------------------
int main(int argc,char* argv[])
{ printf("Hello World!\n");
return 0;
}
-------------------------------------------------------将它修改成回调函数(无参)样式:
-------------------------------------------------------
//定义回调函数
void PrintfText()
{
printf("Hello World!\n");
}
//定义实现回调函数的"调用函数"
void CallPrintfText(void (*callfuct)())
{
callfuct();
}
//在main函数中实现函数回调
int main(int argc,char* argv[])
{
CallPrintfText(PrintfText);
return 0;
}
--------------------------------------------------------修改成带参的回调样式:
--------------------------------------------------------
//定义带参回调函数
void PrintfText(char* s)
{
printf(s);
}
//定义实现带参回调函数的"调用函数"
void CallPrintfText(void (*callfuct)(char*),char* s)
{
callfuct(s);
}
//在main函数中实现带参的函数回调
int main(int argc,char* argv[])
{
CallPrintfText(PrintfText,"Hello World!\n");
return 0;
}
//返回int
//回调函数
int maxInt(int a,int b)
{
return a>b?a:b;
}
//被调函数
void callFun(int (*Fun)(int,int),int a,int b)
{
printf("%d\n",Fun(a,b));
}
int _tmain(int argc, _TCHAR* argv[])
{
callFun(maxInt,2,5);
getchar();
return 0;
}