【发布时间】:2014-08-20 09:33:06
【问题描述】:
我想将一个函数作为参数传递给另一个函数。我已经在 Google 上搜索过这方面的信息,我已经找到了解释,但它对我不起作用,我不知道为什么。
我有以下代码:
void doSomething(uint64_t *);
这是我要传递的函数。
int functionToCall(int x, int y, void (*f)(uint64_t *));
这是我要调用并传递 doSomething() 函数的函数。
现在在我的代码中是:
uint64_t *state = malloc(sizeof(uint64_t) * 10);
void (*f)(uint64_t *) = doSomething;
functionToCall(2, 3, f(state));
如果我现在编译上面的代码,我总是会得到:
错误:无效表达式的使用无效
这有什么问题?
【问题讨论】:
标签: c function pointers parameters