我有一个函数,它是下一个声明的:
func(int n,double *xk, double (*f)(int x));
我想将其分配到typedef int (*func_t)(int, *double, ...);
这样的单词中。我知道如何分配函数,但不了解如何在参数中描述函数。
答案 0 :(得分:10)
你可以做到
typedef double (*FuncPtr)(int x);
int func(int n,double *xk, FuncPtr f);
typedef int (*func_t)(int,double*,FuncPtr);
一次一步,减少不必要的混乱和混乱。
答案 1 :(得分:1)
typedef int (*func)(int, double*, double (*)(int));
答案 2 :(得分:1)
假设函数声明如下:
int func(int n, double *xk, double (*f)(int x)) {
// ...
}
然后指向此函数的指针的typedef如下所示:
typedef int (*funcPointer)(int, double *, int, int, double (*)(int));
//用法:
funcPointer ptrName = func;
假设您要将此ptrName提供给名为doThis()的函数:
int doThis (funcPointer ptrName) {
return 0;
}
然后您可以使用以下方式调用它:
int y = doThis(ptrName);
祝你好运! =)