Как переслать функцию, которая имеет функцию в качестве параметра в C?Как переслать объявить функцию, которая принимает указатель на функцию в качестве параметра?
Вот функция:
void start_thread (void* function (void*)) {
...
}
Я попытался вперед объявить его как:
void start_thread (void*);
, а также:
void start_thread (void* (void*));
и:
void start_thread (void*, void*);
Ни один из них не был принят. Каков правильный день для объявления объявления для этой функции?
Edit:
void start_thread (void (*) (void*));
Урожайность:
Compilation error
prog.c: At top level:
prog.c:135:6: error: conflicting types for 'start_thread'
void start_thread (void* function (void*)) {
^
prog.c:25:6: note: previous declaration of 'start_thread' was here
void start_thread (void (*) (void *));
^
'недействительным (*) (* аннулируются)'. Остальное можно найти в книге C по вашему выбору. – Olaf
Что сказал Олаф. Если вы хотите указать имя для этой функции (для целей документации): 'void (* functionName) (void *);' Вы были почти там chodobaggins, только отсутствовали один набор скобок. –
typedef - ваш друг, и это мой любимый ответ на аналогичный вопрос. Http://stackoverflow.com/questions/1591361/understanding-typedefs-for-function-pointers-in-c – user3528438