我有一个函数int rt_task_start (RT_TASK *task, void(*task_func)(void *arg), void *arg)
,在第二个参数中我传递一个带参数的函数。
- 当我当时只传递一个函数名时没有问题。(正如预期的那样它正在工作)。
rt_task_start(&demo_task1, demo, 1);
- 但是当我通过时
rt_task_start(&demo_task1, demo(&val), 1);
,它给了我错误error: invalid use of void expression
。变量 val 是之前定义的。int val = 0;
- 当我用这个打电话时,这 显示
rt_task_start(&demo_task1, demo(val), 1);
错误 。Warning passing argument 1 of 'demo' makes pointer from integer without a cast
error: invalid use of void expression
int *val; *val = 0;
rt_task_start(&demo_task1, demo(&val), 1);
这也给了我错误。
我不明白我应该传递什么,作为一个空指针。它给了我错误。请有任何想法!