2011-09-17 4 views
1

関数へのポインタをパラメータとして使用するコードを作成しようとしていますが、typedefを使用する必要があります。 私はCプロではありません。私はそこに行っているように感じますが、私は機能へのポインタの構文の良い説明を見つけることができないようです。typedefを使用してパラメータとして機能するポインタ

私は、関数fillArrayを持っています。そして私は、この関数へのポインタのtypedefのを作りたい

long fillArray(long *array, int x, int y) { 
// 
} 

typedef long (*fArray)(long, int, int); 

fArray pFill = fillArray; 

と私はdoThisと呼ばれる関数にこのpFillを与えたいです():

int doThis (fArray pFill) { 
    return 0; 
} 

と使用して、それを呼び出す:

int y = doThis(pFill); 

私は間違っていますか?

答えて

5

あなたのtypedefがする必要があります:

typedef long (*fArray)(long *, int, int); 
          ^
+0

グレート!私はこれを私自身は見ていなかった。ありがとう! – saltandpepper

2

あなたfillArray機能を使用すると、typedef*を忘れてしまった、最初のパラメータとしてlong *を受け入れる:

typedef long (*fArray)(long *, int, int); 
関連する問題