【发布时间】:2016-12-04 10:46:15
【问题描述】:
所以我正在做一个任务,我们需要将我们自己制作的函数传递给为我们提供的库。
Tree * createBinTree(int (*comparePointer) (TreeDataTypePtr data1,
TreeDataTypePtr data2), void (*destroyPointer) (TreeDataTypePtr));
是我提供的代码。 我的 comparePointer 函数指针是
int(*compStr)(void *, void *) = &compareName;
比较是
int compareName(void * rest1, void * rest2);
但是当我像这样通过它时
Tree * myTree = createBinTree((compstr)(str1,str2),die(str1));
我只在 compstr 上得到一个错误,即“传递 createBinTree 的参数 1 使指针从整数而不进行强制转换”和“预期的 'int (*)(void *, void *) 但参数是 int 类型。
【问题讨论】:
-
因为只需要传递函数名:
Tree * myTree = createBinTree(compstr, die); -
这行得通,但我现在不确定如何使用变量
-
此 API 的重点是,您不应该调用这些函数。
-
现在更有意义了,谢谢!
标签: c pointers binary-tree function-pointers