Often I find the need to write functions which return function pointers. Whenever I do, the basic format I use is:
typedef int (*function_type)(int,int); fu
You can probably do something like:
int foo (char i) {return i*2;} int (*return_foo()) (char c) { return foo; }
but god, I hope I'll never have to debug you code....