函数名本来就是指针(地址),两种定义方法如下
一、先定义函数指针类型,再定义数组,然后调用
typedef int (*pfun)(int a); //define function pointer type
int foo(int a)
{
printf("%2d\n", a);
return 0;
}
int main(void)
{
int b = 30;
pfun array[2] = {foo, NULL}; //initialize function pointer array
array[0](b); //call function
return 0;
}
二、直接定义函数指针数组
int foo(int a)
{
printf("%2d\n", a);
return 0;
}
int main(void)
{
int (*pfun[2])(int) = {foo, NULL}; //initialize funciton pointer array
pfun[0](48);
return 0;
}