Normally, when declaring some variable, you put its type before it, like:
int a;
a function pointer may have type like: int(*)(int,int)
, in case we point to a function that takes two integers and returns an integer. But, when declaring such a pointer, its identifier is not after the type, like:
int(*)(int,int) mypointer;
instead, you must write the identifier in the middle:
int(*mypointer)(int,int);
why is this so?