MOH*_*MED 1 c pointers function
是否可以定义一个函数指针数组(并且这些函数没有相同的输入参数),如下面的代码所示?
如果是,我必须在函数定义中输入什么 int (*handler)(/*what Ihave to put here ?*/);
struct handler_index {
const char *name;
int (*handler)(/*what Ihave to put here ?*/);
};
int handler0 (int a, int b)
{
printf("%d\n",a+b);
}
int handler1 (int a, int b, int c)
{
printf("%d\n",a+b+c);
}
int handler2 (int a, int b, int c, int d)
{
printf("%d\n",a+b+c+d);
}
const struct handler_index handler_index[] = {
[0] = {"handler0", handler0},
[1] = {"handler1", handler1},
[2] = {"handler2", handler3},
};
Run Code Online (Sandbox Code Playgroud)
什么都不要放:
int (*handler)();
Run Code Online (Sandbox Code Playgroud)
这表示该函数具有未指定(但不可变)的参数数量和类型。
可以将任何返回int且具有固定数量的参数的函数分配给handler。