私は関数をパラメータとして持つことについて読んできました。特にCでは関数ポインタを使用しています。非線形方程式のゼロを計算するためにnewton raphsonメソッドを(簡単な方法で)実装したいとしましょう。C関数の代わりにポインタをパラメータとして使用するのはなぜですか?
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;
}
したがって、微分の近似を計算するには、doubleを返し、引数としてdoubleをとる関数が必要です。他のパラメータが与えられている場合、関数の根を計算するのと同じです。私の質問は、なぜこれが関数ポインタを関数ポインタとして宣言するのと異なるのでしょうか?たとえば、入力パラメータfを単なる関数ではなく関数ポインタとして宣言する場合...
として解釈されますた宣言のようなもので行きます機能は何ですか?例えば組立の視点から? –
あなたのバージョンを試しましたか?それはコンパイルされますか? – dandan78
パラメータ 'f'は関数ポインタです... – Cornstalks