需要帮助理解下面定义的函数指针?

时间:2012-08-02 15:02:38

标签: c++

不确定如何使用以下内容以及如何使用它? THX

class A;
typedef void (*CALLBACK)( A*, void* );

3 个答案:

答案 0 :(得分:1)

您正在定义一个指向函数的指针,该函数返回void并且A *后跟void *。因此你可以做到

void f(A*, void*);
CALLBACK cbk = f;
// ...
A* a;
void *p;
cbk(a, p);

答案 1 :(得分:1)

它是指向返回void并获取A*void*参数的函数的指针。 E.g。

void foo(A* a, void* v)
{
   ...
}

...

CALLBACK c = foo;

答案 2 :(得分:1)

这是一个类型定义,将类型CALLBACK定义为函数指针,该函数指向返回void的函数,并将A*void*作为参数。

typedef void (*CALLBACK)(A*, void*);
void cb(A*, void*);
CALLBACK handler = cb;
...
A* obj = new A();
some_type data;
handler(obj, &data);