c++怎么通过定义回调函数传回数据?

2025-03-12 16:18:28
推荐回答(2个)
回答1:

回调函数是C++从C语言继承而来的语言特性,就是函数指针的应用。typedef void* (*CallbackFunc)(void*); 这里定义了一个type,它是函数指针类型,指向以void*为参数,并返回void*的指针(注意*的位置和括号的位置);然后 void MyUseCallbackFunc(CallbackFunc func); 用CallbackFunc作为参数类型;然后写具体的CallbackFunc实现:void* MyCallback(void* ctx) { ... 这里是你自己的回调代码 }; 最后调用回调使用函数 MyUseCallbackFunc(MyCallbackFunc);

回答2:

#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;
}