The hardest part about using a
pointer-to-function is declaring it.
Consider an example. You want to create a pointer, pf, that points
to the strcmp() function.
The strcmp() function is declared in this way:
int strcmp(const char *, const char * )
To set up pf to point to the strcmp() function, you want a
declaration that looks just like the strcmp() function’s
declaration, but that has *pf rather than strcmp:
int (*pf)( const char *, const char * );
After you’ve gotten the declaration of pf, you can #include and
assign the address of strcmp() to pf: pf = strcmp;