c++参数中的typedef函数

C++ typedef function in argument

本文关键字:typedef 函数 参数 c++      更新时间:2023-10-16

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

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

我想把它赋给一个词,比如typedef int (*func_t)(int, *double, ...);。我知道如何赋值函数,但不明白如何在参数中描述函数

你可以做

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

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

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

假设函数声明如下:

int func(int n, double *xk, double (*f)(int x)) {
    // ...
}

则指向该函数的指针的类型定义如下:

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

//用法:

funcPointer ptrName = func;

假设你想把这个ptrName给一个叫做doThis()的函数:

int doThis (funcPointer ptrName) {
  return 0;
}

那么你可以直接使用:

int y = doThis(ptrName);
祝你好运!div =)