次の方法で宣言された関数があります。
func(int n,double *xk, double (*f)(int x));
それをのような一言にまとめたいと思いtypedef int (*func_t)(int, *double, ...);
ます。関数を割り当てる方法は知っていますが、引数で関数を記述する方法がわかりません。
できるよ
typedef double (*FuncPtr)(int x);
int func(int n,double *xk, FuncPtr f);
typedef int (*func_t)(int,double*,FuncPtr);
不必要な混乱や混乱を減らすために、一度に1ステップずつ。
関数宣言が次のようになっていると仮定します。
int func(int n, double *xk, double (*f)(int x)) {
// ...
}
この関数へのポインタの typedef は次のようになります。
typedef int (*funcPointer)(int, double *, int, int, double (*)(int));
// 利用方法:
funcPointer ptrName = func;
この ptrName を doThis() という関数に渡したいとします。
int doThis (funcPointer ptrName) {
return 0;
}
次に、次を使用して呼び出すことができます。
int y = doThis(ptrName);
頑張ってください!=)
typedef int (*func)(int, double*, double (*)(int));