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

C 在另一个函数中将函数作为变量调用,c,numerical-integration,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

我对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;
}    
外部双积分梯形(双功能、双最小、双最大、双细分) { 双h=(最大-最小)/细分; s=0; 对于(k=0;k<(细分);k++) { s=s+(h/2)*(函数(min+k*h)+函数(min+(k+1)*h); } 返回s; } 我的问题是如何将泛型函数传递给此函数?我希望这个积分梯形函数能够积分我需要的任何函数

谢谢!
Omer

您将
函数
作为密码传递

例如


函数
作为密码传递

例如


传递函数指针。传递函数指针。值得一提的是,函数和函数指针可以自由交换,因此
function(someValue)
integrate\u梯形(someFunction,…)
就可以了。要使代码可读,请使用typedef-
typedef double(*integrate\u func\u t)(double)值得补充的是,函数和函数指针可以自由交换,因此
函数(someValue)
集成梯形(someFunction,…)
就可以了。要使代码可读,请使用typedef-
typedef double(*integrate\u func\u t)(double)
double integrate_trapezoid(double (*function)(double),double min, double max, double subdivisions)
{
    ...
    (*function)(someValue);
    ...
}

...

double someFunction(double value) { ... }

...

integrate_trapezoid(&someFunction, ...);