OK, I have a question. I don't know whats the difference between functions as pointer and normal function, eg:

void function1(void)
void *function1(void)

What is the difference between the two?

I'm doing parallel programming and we use pointer functions (void *function1(void)) when calling threads. I want to why it is done.

Sorry if you cant understand the question but I've a hard time explaining things over text.