将函数作为另一个函数中的变量调用

时间:2013-11-07 09:36:15

标签: c numerical-integration

我对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函数能够集成我需要的任何函数。

谢谢! 奥马尔

1 个答案:

答案 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, ...);