What do the parentheses around a function name mean?
In one of my project source files, I found this C function definition: int (foo) (int *bar) { return foo (bar); }Note: there is no asterisk next to `foo`, so it's not a function pointer. Or is it?What is going on here with the recursive call?
If there is a macro with the same name as the function, then the function gets called if there are parenthesis around the name; otherwise the macro is called