It is an uncommon style, but I think it is valid.
In short, when you declare a callback, you declare a function pointer. So, a pointer which know the address of a function (I know that you perfectly know that, I am just going step by step to make things clear as best as I can).
For a classic variable, we use this:
For a classic pointer:
int *pfoo;[code]
For function pointers:
[code]int (*pbar)(void);
So there are no reasons to think removing the pointer operand is not legal.
In fact, we could probably say that removing parenthesis is just a shortcut for easier read, and the parenthesis write is the good one.
To conclude, I have tried a very little program (which do nothing) and compiled it with "gcc foo.c -ansi" and it gaves me no error or warning.
Here it is:
int (bar_not_v)();
int (bar_v)();
void main()
{
bar_v();
bar_not_v();
}
int bar_not_v()
{
}
int (bar_v)()
{
}
[/code][/code]