The function header for pthread_create
looks like this:
int pthread_create(pthread_t * thread,
const pthread_attr_t * attr,
void * (*start_routine)(void *),
void *arg);
I understand it all except that the function pointer for start_routine
is of the form void* (fpointer) (void) which means it takes in a void pointer and returns a void pointer.
The void pointer that it takes is just a way to pass in an argument to the start_routine, I get that part, but I don't understand why the function returns a void pointer? What code will even notice that void pointer?