本人想将一个函数作为另一个的函数的参数,定义如下:
int lmdif_( int (*fcn)(int*,int*,double*,double*,int*),
int* m,
int* n,
double* x,
double* fvec,
double* ftol,
double* xtol,
double* gtol,
int* maxfev,
double* epsfcn,
double* diag,
int* mode,
double* factor,
int* nprint,
int* info,
int* nfev,
double* fjac,
int* ldfjac,
int* ipvt,
double* qtf,
double* wa1,
double* wa2,
double* wa3,
double* wa4 )
{ …….}
将int (*fcn)(int*,int*,double*,double*,int*)作为参数传入,那么在调用函数时,只能传入参数一致的函数;
怎么传入函数指针可以实现,在调用时传入不同的函数指针,实现不同的功能。
int lmdif_( int (*fcn)(int*,int*,double*,double*,int*),
int* m,
int* n,
double* x,
double* fvec,
double* ftol,
double* xtol,
double* gtol,
int* maxfev,
double* epsfcn,
double* diag,
int* mode,
double* factor,
int* nprint,
int* info,
int* nfev,
double* fjac,
int* ldfjac,
int* ipvt,
double* qtf,
double* wa1,
double* wa2,
double* wa3,
double* wa4 )
{ …….}
将int (*fcn)(int*,int*,double*,double*,int*)作为参数传入,那么在调用函数时,只能传入参数一致的函数;
怎么传入函数指针可以实现,在调用时传入不同的函数指针,实现不同的功能。
解决方案
20
lz这参数要吓死人,弄成一个结构体不行么….
不同参数类型操作不同,用c++的重载不就行了
不同参数类型操作不同,用c++的重载不就行了
20