参考:http://blog.csdn.net/callmeback/article/details/4242260编程
1.什么是回调函数编程语言
回调就是一种利用函数指针进行函数调用的过程,使用回调函数实际上就是在调用某个函数(一般是API函数)时,将本身的一个函数(这个函数为回调函数)的地址做为参数传递给那个函数。而那个函数在须要的时候,利用传递的地址调用回调函数,这时你能够利用这个机会在回调函数中处理消息或完成必定的操做函数
2.回调函数的例子spa
#include <stdio.h>
void printWelcome(int len)
{
printf("welcome\n", len);
}
void printGoodbye(int len)
{
printf("goodbye%d\n", len);
}
void callback(int times, void (* print)(int))
{
int i;
for (i = 0; i < times; ++i)
{
print(i);
}
printf("I am in callback function!\n\n");
}
void main(void)
{
callback(10, printWelcome);
callback(10, printGoodbye);
printWelcome(5);
}.net
3.递归函数指针
编程语言中,函数Func(Type a,……)直接或间接调用函数自己,则该函数称为递归函数。递归函数不能定义为内联函数。htm
4.可重入函数blog
可重入函数主要用于多任务环境中,一个可重入的函数简单来讲就是能够被中断的函数,也就是说,能够在这个函数执行的任什么时候刻中断它,转入OS调度下去执行另一段代码,而返回控制时不会出现什么错误;而不可重入的函数因为使用了一些系统资源,好比全局变量区,中断向量表等,因此它若是被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的递归