Я пытаюсь по-настоящему понять функциональные указатели без использования typedef
, но не могу этого понять. Я не понимаю, какая подпись необходима, чтобы передать, что я возвращаю указатель на указатель на функцию.
#include <stdio.h>
void odd() { printf("odd!\n"); }
void even() { printf("even!\n"); }
void (*get_pfn(int i))()
{
return i % 2 == 0 ? &even : &odd;
}
__SIGNATURE__
{
return &get_pfn;
}
int main()
{
get_pfn_pfn()(1)();
get_pfn_pfn()(2)();
return 0;
}
Чтобы это работало, каким должен быть __SIGNATURE__
?