#include <stdio.h>
void *(*)(void) func(void)
{
printf("プ");
return func;
}
int main()
{
(*(*(void ((*)(void))((*)(void)))(*(func()))())())();
return 0;
}

これでよろしいのでしょうか?