Вызов функции в качестве переменной в другой функции

Я немного новичок в 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 могла интегрировать любую нужную мне функцию.

Спасибо! Omer

1 ответ

Вы передаете function как указатель на функцию.

Например

double integrate_trapezoid(double (*function)(double),double min, double max, double subdivisions)
{
    ...
    (*function)(someValue);
    ...
}

...

double someFunction(double value) { ... }

...

integrate_trapezoid(&someFunction, ...);
Другие вопросы по тегам