关于对指向多个函数指针的声明及定义问题。
我们大家都知道定义一个指向4个int的指针可以这样写:int (*p)[4];
这样每行为4个元素的二维数组名就能赋值给p:
int arr[n][4];
p = arr;
n为常量,这编译并不会报错。
声明一个有4个函数指针,参数类型为void,返回类型也为void的数组可以这样写:
void (* pfuns[4])(void) = {fun1, fun2, fun3, fun4};
这样没问题,可是如何定义一个指向&pfuns的值呢,这与上面的int可不一样,试了很多次终于这样没错:
void (* (* p)[4])(void) = &pfuns;
至于你晕没晕,反正我是晕了。