C 函数指针和 typedef

Ric*_*ins 2 c typedef function callback

我得到了一个代码。我需要使用以下函数,但在调用它时遇到问题。

int myFunction(const struct LQuery *pQuery, 
                   f_Callback Callback,
                   const void *pPriv);
Run Code Online (Sandbox Code Playgroud)

我有以下定义

typedef void (f_Callback) (int NumOfRecordsFound,
                          void *pPriv,
                          const tL_QueryResult *pData);
Run Code Online (Sandbox Code Playgroud)

我知道这Callback应该是指向的指针,my_callbackFunction但我似乎无法理解如何为其设置参数。据我所知pQuery传递给回调函数但f_Callback需要3个参数。

IE

int main (int Argc, char *pArgv[])
{
    myFunction(what should go here and WHY)
}
Run Code Online (Sandbox Code Playgroud)

lua*_*kow 6

回调函数将从myFunction. 您只需将回调函数作为参数传递。下面是一个例子:

#include <stdio.h>

typedef void (f_Callback)(int a,
                          int b,
                          int c);

int myFunction(int a, f_Callback* callback)
{
    callback(a, a+1, a+2);
}

void myCallback(int a, int b, int c)
{
    printf("a: %d, b: %d, c: %d\n", a, b, c);
}

int main()
{
    myFunction(5, &myCallback);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

预期输出:

$./a.out
a: 5, b: 6, c: 7
Run Code Online (Sandbox Code Playgroud)