我对c编程有点新意,我试图将函数与梯形规则集成。我的功能是:
extern double integrate_trapezoid(double function,double min, double max, double subdivisions)
{
double h = (max-min)/subdivisions;
s=0;
for (k=0; k < (subdivisions) ; k++)
{
s = s + (h/2) * (function(min + k*h) + function(min + (k+1)*h));
}
return s;
}
我的问题是如何将泛型函数传递给此函数?我希望这个integrate_trapezoid函数能够集成我需要的任何函数。
谢谢! 奥马尔
答案 0 :(得分:1)
您将function
作为function pointer传递。
E.g。
double integrate_trapezoid(double (*function)(double),double min, double max, double subdivisions)
{
...
(*function)(someValue);
...
}
...
double someFunction(double value) { ... }
...
integrate_trapezoid(&someFunction, ...);