如何在c中使用带参数的函数指针?

如何在c中使用带参数的函数指针?,c,syntax,function-pointers,C,Syntax,Function Pointers,如何使用此函数指针声明 int (* get_function(char c)) (int, int); 我有三个函数int function\u a(int a,int b),int function\u b(int a,int b)和int function\u c(int a,int b)。我想使用上面的函数指针根据c有条件地调用我的一个函数,下面是一个示例: #include <stdio.h> int function_a(int a, int b) { pri

如何使用此函数指针声明

int (* get_function(char c)) (int, int);
我有三个函数
int function\u a(int a,int b)
int function\u b(int a,int b)
int function\u c(int a,int b)
。我想使用上面的函数指针根据
c

有条件地调用我的一个函数,下面是一个示例:

#include <stdio.h>

int function_a(int a, int b)
{
    printf("Inside function_a: %d %d\n", a, b);
    return a+b;
}

int function_b(int a, int b)
{
    printf("Inside function_b: %d %d\n", a, b);
    return a+b;
}

int function_c(int a, int b)
{
    printf("Inside function_c: %d %d\n", a, b);
    return a+b;
}

int function_whatever(int a, int b)
{
    printf("Inside function_whatever: %d %d\n", a, b);
    return a+b;
}


int (* get_function(char c)) (int, int)
{
    switch(c)
    {
        case 'A':
            return function_a;
        case 'B':
            return function_b;
        case 'C':
            return function_c;
    }
    return function_whatever;
}

int main(void) {
    get_function('B')(3, 5);
    return 0;
}
#包括
int函数_a(int a,int b)
{
printf(“内部函数a:%d%d\n”,a,b);
返回a+b;
}
int函数_b(int a,int b)
{
printf(“内部函数\u b:%d%d\n”,a,b);
返回a+b;
}
int函数_c(int a,int b)
{
printf(“内部函数\u c:%d%d\n”,a,b);
返回a+b;
}
int函数(int a,int b)
{
printf(“内部函数\u无论什么:%d%d\n”,a,b);
返回a+b;
}
int(*get_函数(char c))(int,int)
{
开关(c)
{
案例“A”:
返回函数_a;
案例“B”:
返回函数_b;
案例“C”:
返回函数;
}
返回函数;
}
内部主(空){
get_函数('B')(3,5);
返回0;
}
get_函数('B')
返回指向
function_B
get_函数('B')的函数指针(3,5)
也调用该函数

int(*get_函数(char c))(int,int)
不是函数指针,它是一个函数,获取
字符c
并返回指向函数的指针。