理解这种东西,只要你能理解C++最简单的声明表达式就OK了。
下面是int类型的声明表达式。
int integer;//声明一个int型变量,变量名为integer.
再声明表达式的前面加上typedef,则原来的变量名就变成了类型名的别名。
typedef int integer
下面看函数指针变量的声明:
int (*CallbackFunctionPtr)(int parameter);
上式的函数指针的变量名是CallbackFunctionPtr,因此
typedef int (*CallbackFunctionPtr)(int parameter);
CallbackFunctionPtr变成了函数指针 int(*)(int)的别名。
这种指针很常见,for exmaple:
typedef int (A *)(int parameter);
int fun1(int a)
{
cout<<"fun1 call"<<endl;
};
int fun2(int b)
{
cout<<"fun2 call"<<endl;
};
int main()
{
A fun[]={fun1,fun2};
fun[1](10);
fun[2](10);
}
以上结果就会显示:
fun1 call
fun2 call