回调函数是C++从C语言继承而来的语言特性,就是函数指针的应用。typedef void* (*CallbackFunc)(void*); 这里定义了一个type,它是函数指针类型,指向以void*为参数,并返回void*的指针(注意*的位置和括号的位置);然后 void MyUseCallbackFunc(CallbackFunc func); 用CallbackFunc作为参数类型;然后写具体的CallbackFunc实现:void* MyCallback(void* ctx) { ... 这里是你自己的回调代码 }; 最后调用回调使用函数 MyUseCallbackFunc(MyCallbackFunc);
#include
typedef void (* FUNC_POINTER)(char *);
void callback1(char *s){
printf("%s\n",s);
}
void callback2(char *s){
printf("[");
printf("%s",s);
printf("].\n");
}
void func(char *s,FUNC_POINTER p){
p(s);
}
int main(){
FUNC_POINTER p;
p = callback1;
func("callback1",p);
p = callback2;
func("callback2",p);
return 0;
}