我想创建一个函数来执行由一组数据上的参数传递的函数.如何在C中将函数作为参数传递?
我一直在阅读有关函数作为参数的函数,特别是在C中,它们使用函数指针.让我们假设我想实现牛顿raphson方法(以一种简单的方式)来计算非线性方程中的零点.
double derivative(double f(double), double x)
{
double h = 1e-9;
return (f(x + h) - f(x)) / h;
}
double newton_raphson(double f(double), double x0, double tol)
{
double xk, diff;
do
{
xk = x0 - f(x0) / derivative(f, x0);
diff = fabs(xk - x0);
x0 = xk;
} while (diff >= tol);
return xk;
}
Run Code Online (Sandbox Code Playgroud)
因此,要计算导数的近似值,我需要一个返回double的函数,并将double作为参数.对于计算函数的根,给定其他参数也是如此.我的问题是,为什么这与将函数参数声明为函数指针不同?例如,将输入参数f声明为函数指针而不仅仅是函数...