I was recently reading a code, and found that a function pointer is written as :
int (*fn_pointer ( this_args ))( this_args )
I usually enc
From cdecl (which is a handy helper tool to decipher C declarations):
int (*fn_pointer ( this_args1 ))( this_args2 )
declare fn_pointer as function (this_args1) returning pointer to function (this_args2) returning int
Hence the former is a function, that returns pointer to function, while the latter:
return_type (*fn_pointer ) (arguments);
is an ordinary "pointer to function".
Read more about undestanding complex declarations from the Clockwise/Spiral Rule article.