Almost any pointer will convert to a void *, however a void * will not convert to another pointer type unless you use a typecast. Declaring a pointer to a function is shown below.
Code:
void *x; // pointer to whatever
void (*fPtr)(int); // pointer to a function of the form void f(int)
void foo(int)
{
x = foo; // No worries here
fPtr = foo; // As intended
fPtr = x; // Error!
}