1

我有一个函数,它以下一个方式声明:

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

我想将其分配到一个单词中,例如typedef int (*func_t)(int, *double, ...);. 我知道如何分配函数,但不明白如何在参数中描述函数。

4

3 回答 3

10

你可以做

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

typedef int (*func_t)(int,double*,FuncPtr);

一步一步减少不必要的混乱和混乱。

于 2013-01-15T12:21:16.040 回答
1

typedef int (*func)(int, double*, double (*)(int));

于 2013-01-15T12:24:03.260 回答
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);

祝你好运!=)

于 2013-01-15T12:33:28.690 回答