Почему 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? Какой код даже заметит этот пустой указатель?

Ответы на вопрос(2)

Ваш ответ на вопрос