Это объявление функции, которая принимает указатель на функцию в качестве аргумента. В своей основной форме это выглядит так:
void someFunction(argument_type);
Где argument_type
- int (*)(const void *, const void *)
, что можно описать как «указатель на функцию, которая принимает два аргумента const void * и возвращает int» то есть любая функция, которая имеет следующее объявление:
int foo(const void *, const void *);
Для иллюстрации на примере:
int foo_one(const void * x, const void * y) { ... }
int foo_two(const void * x, const void * y) { ... }
void someFunction(int (*)(const void *, const void *) function_ptr)
{
const void * x = NULL;
const void * y = NULL;
int result;
result = (*function_ptr)(x, y); // calls the function that was passed in
}
int main()
{
someFunction(foo_one);
someFunction(foo_two);
return 0;
}