This is a pointer to a function in NULL .
void(*)() is the definition of a pointer to a function that does not contain arguments that return nothing; you can name it:
typedef void(*my_func)();
then in your example you have a cast:
(my_func)0 gives a pointer to the my_func function, that is, a function that takes nothing and returns nothing.
Then you cast it with an asterisk (optional, afaik), and then you call it.
So, you call a function that takes no arguments and returns nothing that happens at the zero address.
This behavior is (usually) undefined and instantly crashing on many platforms. (This is not undefined behavior if you put the function at address zero, at least I would not have thought what it was.)
dash-tom-bang
source share