C语言中带有参数的回调函数指针

callback function pointer with argument in C language

提问人:AlexGiov 提问时间:10/28/2022 更新时间:11/1/2022 访问量:56

问:

我有以下 C 语言的工作代码,func1 和 func2:

    void func1(int (*callbackf)(void *, void *)){
        void a = NULL;
        void b=NULL;
        //do some work and then call comp
        callbackf (a,b)
    }
    void func2(int (*callbackf)(void *), void *a, void *b){
        // do some work, not necessary works on a and b.
        callbackf(a,b);
    }

我写在这里是想问你是否可以做这样的事情(func3)

void func3(int (*callbackf)(void *), void *a, void *b){
        // do some work, not necessary works on a and b.
        callbackf(a,b);
    }

可能吗?这有意义吗?

问候 亚历克斯

C 语法 回调

评论

2赞 babon 10/28/2022
除了行不通的事实之外,你还想在这里做什么?,并且基本上都在做同样的事情。此外,由于接受两个参数,因此不正确。void a = NULLfunc1func2func3int (*callbackf)(void *)callback
3赞 Barmar 10/28/2022
没有变量这样的东西,只有.voidvoid*
2赞 Bodo 10/28/2022
你写了“我有以下 C 语言的工作代码”。这段代码甚至不会编译,那么它怎么能工作呢?请编辑您的问题并准确复制和粘贴工作代码,不要重新输入。 与 相同。假设这将是有效的代码,但事实并非如此,那么当然可以实现 named 的副本,但是使用不同的名称两次实现相同的函数是没有意义的。func3func2func2func2func3

答: 暂无答案