Это указатель на функцию в NULL
.
void(*)()
- это определение указателя на функцию без аргументов, которая ничего не возвращает; Вы можете назвать это:
typedef void(*my_func)();
, тогда в вашем примере вы получили приведение:
(my_func)0
возвращает указатель на функцию my_func
, то есть функцию, которая ничего не берет и ничего не возвращает.
Затем вы разыменовываете его с помощью ведущей звездочки (что ненужно, афаик), а затем вызываете его.
Таким образом, вы вызываете функцию, не принимающую аргументов и не возвращающую ничего, что происходит с нулевым адресом.
Это (обычно) неопределенное поведение, которое мгновенно падает на многих платформах. (Это не неопределенное поведение, если вы помещаете функцию в нулевой адрес, по крайней мере, я бы не подумал, что это так.)