有人能给我一个C中回调函数的具体例子吗?

有人能给我一个C中回调函数的具体例子吗?,c,callback,C,Callback,为学校项目用C编写队列库。我很难理解如何在main中实现回调函数来测试库。有谁能提供这样做的一般步骤吗 回调函数声明的语法是什么?使用回调函数,你调用你的库,然后库调用你,例如获取更多信息,要求继续进行一些计算或通知你一些进展 因此,回调函数是什么或看起来像什么取决于您的库想要做什么 使用指向函数的指针调用库函数f 库执行一些操作,然后调用您的函数 你做点什么然后回来 您的库功能将继续 库函数最终返回给您。 因此,必须编写回调函数,然后将函数指针传递给库,例如: int f(int prm1,

为学校项目用C编写队列库。我很难理解如何在main中实现回调函数来测试库。有谁能提供这样做的一般步骤吗

回调函数声明的语法是什么?

使用回调函数,你调用你的库,然后库调用你,例如获取更多信息,要求继续进行一些计算或通知你一些进展

因此,回调函数是什么或看起来像什么取决于您的库想要做什么

使用指向函数的指针调用库函数f 库执行一些操作,然后调用您的函数 你做点什么然后回来 您的库功能将继续 库函数最终返回给您。 因此,必须编写回调函数,然后将函数指针传递给库,例如:

int f(int prm1, int (*g)(void));
这将库函数f定义为有两个参数,一个int和一个指向不带参数但返回int的函数的指针。现在编写函数:

int myCallBack(void)
{
    // do something
    return 1;
}
现在您可以调用库函数f:


您不在main中实现任何函数。C没有嵌套函数。您需要像其他函数一样实现回调。没有特殊语法。回调:谢谢当我在f中调用myCallBack时,为什么我不需要传入指向该函数的指针,而只是调用它呢?我不是100%确定你在问什么,但我认为答案是你在调用f时没有调用myCallBack,而是在传递它的地址。。。
f(123, myCallBack);