C/C++ 之回调函数
今天讨论下 C/C++ 中的回调函数。
在理解 “回调函数 ”之前,首先讨论下函数指针的概念。
函数指针
(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所
有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物
件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,
因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指
针。
(2)先来看一个 Hello World 程序:
int main(int argc,char* argv[])
{
printf("Hello World!" );
return 0;
}
然后,采用函数调用的形式来实现:
void Invoke(char* s);
int main(int argc,char* argv[])
{
Invoke("Hello World!" );
return 0;
}
void Invoke(char* s)
{
printf(s);
}
用函数指针的方式来实现:
void Invoke(char* s);
int main()
{
void (*fp)( char* s); //声明一个函数指针 (fp)
fp=Invoke; //将 Invoke 函数的入口地址赋值给 fp
fp("Hello World!" ); //函数指针 fp 实现函数调用
return 0;
}
评论0
最新资源