Style
typedef void func_t (void);
...
funct_t* fp;
It is one of the clearest ways to declare function pointers. Clear as it is consistent with the rest of the pointer syntax for C.
This is equivalent to a little less readable
typedef void (*func_t)(void);
func_t fp;
This, in turn, is equivalent to much less readable
void (*fp)(void);
, :
1) void sort (func_t* callback);
2) void sort (func_t callback);
3) void sort (void(*callback)(void));
, typedefs. .