回调函数

标准Hello World程序:
-------------------------------------------------------

int main(int argc,char* argv[])
{    printf("Hello World!
"); 
     return 0;
}
-------------------------------------------------------
将它修改成回调函数(无参)样式:
-------------------------------------------------------
//定义回调函数
void PrintfText() 
{
    printf("Hello World!
");
}
//定义实现回调函数的"调用函数"
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!
");
    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
",Fun(a,b));
}
int _tmain(int argc, _TCHAR* argv[])
{
 callFun(maxInt,2,5);
 getchar();
 return 0;
}

原文地址:https://www.cnblogs.com/yangjj08/p/10153670.html