Почему start_routine для pthread_create возвращает void * и принимает void *
Заголовок функции для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 - это просто способ передать аргумент в start_routine, я получаю эту часть, но я не понимаю, почему функция возвращает указатель void? Какой код даже заметит этот пустой указатель?