declare as function pointer and initialize in the same line

Whenever you can write a typedef, you can also write a variable declaration with no typedef, with almost identical syntax.


// typedef
 typedef char(*FP)(unsigned);
 FP x = y ;

 // no typedef
 char(*x)(unsigned) = y;

Remove the typedef keyword, and you have a variable declaration. Slap an initialisation on it if you want