Consider below C program. The program has extra bracket around function name.
// C program to show that extra brackets with function // name work #include <stdio.h> void (foo)( int n)
{ printf ( "Function : %d " , n);
} int main()
{ (foo)(4);
return 0;
} |
Output:
Function 4
So putting extra bracket with function name works in C/C++.
What can be use of it?
One use could be, if we have a macro with same name as function, then extra brackets avoid macro expansion wherever we want the function to be called.
// C program to show that extra brackets with function // name can be useful if we have a macro with same name #include <stdio.h> #define foo(n) printf("\nMacro : %d ", n); void (foo)( int n)
{ printf ( "Function : %d " , n);
} int main()
{ (foo)(4);
foo(4);
return 0;
} |
Output:
Function 4 Macro : 4