C 传递typedefed函数指针

C 传递typedefed函数指针,c,function,pointers,compiler-errors,C,Function,Pointers,Compiler Errors,我有两个具有相同签名的函数,我为它们定义了一个函数指针。此外,我键入了前面提到的函数指针以简化它的使用。代码如下: int add(int first_op, int second_op) { return first_op + second_op; } int subtract(int first_op, int second_op) { return first_op - second_op; } typedef int (*functionPtr)(int, int);

我有两个具有相同签名的函数,我为它们定义了一个函数指针。此外,我键入了前面提到的函数指针以简化它的使用。代码如下:

int add(int first_op, int second_op)
{
    return first_op + second_op;
}

int subtract(int first_op, int second_op)
{
    return first_op - second_op;
}

typedef int (*functionPtr)(int, int);

int do_math(functionPtr, int first, int second){
    return functionPtr(first, second);
}

main() {
    int a=3, b=2;
    functionPtr f = &add;
    printf("Result of add = %d\n", f(a,b));

    f = &subtract;
    printf("Result of subtract = %d\n", f(a,b));
}
对于方法do_math,我得到两个错误,如下所示:

在函数“do_math”中:错误:忽略参数名称 int do_mathfunctionPtr,int first,int second{

错误:“functionPtr”之前应为表达式 返回函数ptrfirst,second

我做错了什么?谢谢,functionPtr是一种类型。参数还必须有名称:

int do_math(functionPtr function, int first, int second){
    return function(first, second);
}
functionPtr是一种类型。参数还必须具有名称:

int do_math(functionPtr function, int first, int second){
    return function(first, second);
}