1 #ifndef NO_TRAMPOLINES f0(int (* fn)(int *),int * p)2int f0(int (*fn)(int *), int *p) 3 { 4 return (*fn) (p); 5 } 6 f1(void)7int f1(void) 8 { 9 int i = 0; 10 11 int f2(int *p) 12 { 13 i = 1; 14 return *p + 1; 15 } 16 17 return f0(f2, &i); 18 } 19 #endif 20 main()21int main() 22 { 23 #ifndef NO_TRAMPOLINES 24 if (f1() != 2) 25 abort (); 26 #endif 27 return 0; 28 } 29