This is a function expecting no arguments and returning no value:
void f(void)
This is a pointer to a function expecting no arguments and returning no value:
void (*p)(void)
This is the type of that pointer:
void (*)(void) /* just remove the p! */
This is that type in parentheses:
(void (*)(void))
This is a cast to that type (the type in parentheses, followed by a value):
(void (*)(void))0
Still with me? so far we have the integer value 0 cast to a pointer-to-function-that-takes-no-arguments-and-returns-nothing.
The cast is an expression with pointer-to-function type. When you have one of those you can call it like this:
(your expression here)(arguments to the function)
The first set of parentheses are just for precedence, and sometimes might not be needed (but this time they are). The end result:
((void (*)(void))0)(/* no args */);
Takes the value 0, casts it to pointer-to-function-expecting-no-arguments-and-returning-nothing, and calls it, supply no arguments.