【发布时间】:2012-02-21 00:19:21
【问题描述】:
我的库中有一个函数头,如下所示:
void deepCopy(CList ** clone, CList * cl, void * (* data_clone) (void * d));
我很难将 deep_clone 函数正确传递给它。
这是我目前正在尝试的
CList *ys2 = &ys;
void (*dc) (void *) = &data_clone;
void (**dc2) (void *) = &dc;
deepCopy(&ys2, &xs, dc2);
gcc 输出为:
testclist.c:在函数“test_deep_copy”中:
testclist.c:504:警告:从不兼容的指针类型传递“deepCopy”的参数 3
我在我的 dc2 声明中尝试了 cdecl.org,它说这是我认为是正确的。
非常感谢任何帮助;谢谢。
【问题讨论】:
-
如果您已经知道 cdecl,请在 data_clone 上使用它 :)
-
它说有语法错误。它似乎不喜欢函数头。
-
您需要省略参数名称,例如
explain void * (* data_clone) (void *)。你也应该在你的代码中这样做。
标签: c function pointers function-pointers