Заголовок функции для pthread_create
выглядит следующим образом:
int pthread_create(pthread_t * thread,
const pthread_attr_t * attr,
void * (*start_routine)(void *),
void *arg);
Я понимаю все это, за исключением того, что указатель функции для start_routine
имеет вид void* (*fpointer) (void*)
, что означает, что он принимает указатель void и возвращает указатель void.
Указатель void, который он принимает, - это просто способ передать аргумент start_routine, я получаю эту часть, но я не понимаю, почему функция возвращает указатель на void? Какой код даже заметил бы указатель void?