Аналогичный пример из букваря с хорошей репутацией Ted Jensen, "Tutorial on Pointers and Arrays in C" (веб-версия):
(выделение мое).Pointers to functions must match the functions pointed to in the number and types of the parameters and the type of the return value. In our case, we declare our function pointer as:
int (*fptr)(const void *p1, const void *p2);