Function pointer in C
在C语言中,存在指向函数的指针类型,被称作函数指针
。
函数指针的声明几乎和一般的函数声明一样,除了声明中的函数名被一组括号包起
来,并在函数名前插入一个 *
(asterisk),就像这样:
int (*function_pointer)(int *, int *);
和其他指针类型一样,函数指针也有它自己的数组形式。以上述的函数指针类型为例,我们声明 一个大小为 4 的函数指针:
int (*function_pointer[4])(int *, int *);
再比如,我们有下列 4 个函数:
int func1(int *, int *);
int func2(int *, int *);
int func3(int *, int *);
int func4(int *, int *);
我们可以这样给函数指针数组进行初始化:
int (*function_pointer[4]) (int *, int *) = {
&func1,
&func2,
&func3,
&func4
};
或把“4”省略掉,使得定义更加灵活:
int (*function_pointer[]) (int *, int *) = {
&func1,
&func2,
&func3,
&func4
};
以上。