Code Bye

函数指针作为参数

本人想将一个函数作为另一个的函数的参数,定义如下:
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++的重载不就行了

20

发重复了!
http://bbs.csdn.net/topics/391967253#post-401249076
引用:

本人想将一个函数作为另一个的函数的参数,定义如下:
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*)作为参数传入,那么在调用函数时,只能传入参数一致的函数;
怎么传入函数指针可以实现,在调用时传入不同的函数指针,实现不同的功能。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明函数指针作为参数