The declarations are for function pointers, designed to point to functions with different signatures.
int (*less)(void *m, size_t a, size_t b);
This one is a function pointer called 'less', which is to be used with a function which takes a parameter list of (void *m, size_t a, size_t b), and return int. You could point this function pointer at a function like this:
int foo(void *m, size_t a, size_t b)
{
return 0;
}
The second one is the same. The third one is this:
void (*swap)(void *m, size_t a, size_t b);
This one is a function pointer called 'swap', which is to be used with a function which takes a parameter list of (void *m, size_t a, size_t b), and return void. You could point this function pointer at a function like this:
void foo(void *m, size_t a, size_t b)
{
return;
}
This website is handy for decoding these kinds of declarations.