请问一个关于typedef的关系

请教一个关于typedef的关系
这两天在接触回调函数的时候,遇到了一个像这样的别名定义“typedef void (*MyCALLBACK)(int a, int b);

代码的完整定义是这样的:

#ifndef CALLBACK_H
#define CALLBACK_H

typedef void (*MyCALLBACK)(int a, int b);

class Base
{
private:
int m;
int n;
static MyCALLBACK func;

public:
void registerCallBack(MyCALLBACK fun, int k, int j);
void callCallBack();

};

#endif

请问下,这个typedef在这里是什么东东呢?别名定义,不是像"typedef A B"这样的形式吗?
在回调函数中,typedef是不是经常使用到呢?


------解决方案--------------------
http://blog.sina.com.cn/s/blog_5e71ee700100fo13.html
------解决方案--------------------
很典型的函数指针用法,楼主可以通过这篇http://see.xidian.edu.cn/cpp/html/496.html文章系统学习一下。
------解决方案--------------------
这里实际上就是你说的那个typedef A B;的形式 只是在这里A这个类型 是一个函数指针而已也就是说 A的类型是void(*)(int,int)
------解决方案--------------------
定义了一个叫做MyCALLBACK的类型。该类型是一个函数指针,所对应的函数接受两个int为参数,返回void。
------解决方案--------------------
收先你要知道这是个函数指针,指向的是返回值为void,有两个int参数的函数。比如我现在定义一个函数:
[code=C/C++]
void fun(int a,int b)
{
cout < < "ok " < <endl;
}
[/code]
现在我就可以定义一个MyCALLBACK变量,指向该函数
MyCALLBACK temp = fun;
然后我可以调用它:
temp(2,5);
就相当于 fun(2,5);