使用typedef作为参数的指针

时间:2011-09-17 14:16:40

标签: c function pointers

我正在尝试创建使用函数指针作为参数的代码,我必须使用typedef。 我不是C专业人士。感觉就像我到了那里,但我似乎无法找到对函数指针语法的一个很好的解释。

我有一个函数fillArray:

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

然后我想创建一个指向此函数的指针的typedef:

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

fArray pFill = fillArray;

我希望将这个pFill赋予一个名为doThis()的函数:

int doThis (fArray pFill) {
  return 0;
}

并使用:

调用它
int y = doThis(pFill);

我做错了什么?

2 个答案:

答案 0 :(得分:5)

您的typedef必须是:

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

答案 1 :(得分:2)

您的fillArray函数接受long *作为第一个参数,您忘记了*中的typedef

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