我正在尝试创建使用函数指针作为参数的代码,我必须使用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);
我做错了什么?
答案 0 :(得分:5)
您的typedef必须是:
typedef long (*fArray)(long *, int, int);
^
答案 1 :(得分:2)
您的fillArray
函数接受long *
作为第一个参数,您忘记了*
中的typedef
:
typedef long (*fArray)(long *, int, int);