Ошибка «Ожидаемое первичное выражение до» при передаче указателя на функцию - PullRequest
0 голосов
/ 18 февраля 2012

В настоящее время я работаю над кодом, который использует внешнюю библиотеку, и вот часть того, что дано в библиотеке:

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. Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Вы делаете что-то не так.func_start_t в вызове функции совершенно не нужен (и неверен).Вы должны просто написать:

create(foo, *args); //Assuming `args` is a pointer to a pointer
0 голосов
/ 18 февраля 2012

Просто вызовите это:

create(foo, *args);

Я предполагаю, foo это функция, определенная как:

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