參考: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調度下去執行另一段代碼,而返回控制時不會出現什麼錯誤;而不可重入的函數因爲使用了一些系統資源,好比全局變量區,中斷向量表等,因此它若是被中斷的話,可能會出現問題,這類函數是不能運行在多任務環境下的遞歸