#include int main(){ void (*stmaker(int p))() { // void (* name goes here )() static held_param = p; void print_7_squared(){ int square(int x){ return x * x; } printf("%d\n", square(p)); } return print_7_squared; } void (*p9)() = stmaker(9); p9(); void (*p4)() = stmaker(4); p4(); p9(); return 0; /* void (*a[])() = {print_7_squared, print_19_squared, print_7_squared, 0}; for(int i = 0; i < 3; i++) a[i](); for(void (**i)() = a; *i; i++) (*i)(); */ }