将指针传递给函数时出现"expected primary-expression before"错误

"expected primary-expression before" error when passing pointer to function

本文关键字:expected primary-expression 错误 before 指针 函数      更新时间:2023-10-16

我目前正在开发利用外部库的代码,下面是库中给出的部分内容:

typedef void (*func_start_t) (void *);
extern int create(func_start_t func, void *a);

我试图用下面的代码行来调用它(其中foo是另一个函数):

create(func_start_t foo, *args);

然而,我一直得到一个错误的expected primary-expression before foo。我做错了什么?

你做错了什么。函数调用中的func_start_t是完全不必要的(也是不正确的)。你应该写:

create(foo, *args); //Assuming `args` is a pointer to a pointer

只需调用此:

create(foo, *args);

我假设foo是一个定义为:的函数

void foo(void*) {/*....*/}