Just use the typedef. Even if you personally find the other variants readable, chances are that your peer reading your code doesn't.
typedef int func(void);
func *func_ptr;
Avoids the mess of the function pointer syntax, but still makes the fact that it is a pointer clear.