1

次の方法で宣言された関数があります。

func(int n,double *xk, double (*f)(int x));

それをのような一言にまとめたいと思いtypedef int (*func_t)(int, *double, ...);ます。関数を割り当てる方法は知っていますが、引数で関数を記述する方法がわかりません。

4

3 に答える 3

10

できるよ

typedef double (*FuncPtr)(int x);  
int func(int n,double *xk, FuncPtr f);

typedef int (*func_t)(int,double*,FuncPtr);

不必要な混乱や混乱を減らすために、一度に1ステップずつ。

于 2013-01-15T12:21:16.040 に答える
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);

頑張ってください!=)

于 2013-01-15T12:33:28.690 に答える
1

typedef int (*func)(int, double*, double (*)(int));

于 2013-01-15T12:24:03.260 に答える