Recently I come across function declared line this:
type (function)(argument list);
example
void (free)(void *ptr);
Definition is the same
void (free)(void *ptr)
{
...
}
It actually came from memcheck library.
So, the question is what do parentheses around free mean?
As far as I am aware, the parentheses around free make absolutely no difference.
The only time you see parentheses around a function name, I think, is for function pointers: void (*free)(void* ptr);
This means a pointer called free to a function taking a void* argument.