我有一个函数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 casterror: invalid use of void expression int *val; *val = 0;rt_task_start(&demo_task1, demo(&val), 1);这也给了我错误。
我不明白我应该传递什么,作为一个空指针。它给了我错误。请有任何想法!