参数中的C ++ typedef函数

时间:2013-01-15 12:19:41

标签: c++ typedef

我有一个函数,它是下一个声明的:

func(int n,double *xk, double (*f)(int x));

我想将其分配到typedef int (*func_t)(int, *double, ...);这样的单词中。我知道如何分配函数,但不了解如何在参数中描述函数。

3 个答案:

答案 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);

祝你好运! =)