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);
}