了解回调函数之前,首先先知道函数指针的概念:
指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。
(1)先来看一个小程序:
int main(int argc,char* argv[])
{
printf("Hello World!\n");
return 0;
}
用函数调用情况:
void Invoke(char* s)
{
printf(s);
}
int main(int argc,char* argv[])
{
Invoke("Hello World!\n");
return 0;
}
用函数指针来实现:
void Invoke(char* s)
{
printf(s);
}
int main()
{
void (*fp)(char* s); //声明一个函数指针(fp)
fp=Invoke; //将Invoke函数的入口地址赋值给fp
fp("H