Open In App

Extra brackets with function names in C/C++

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
Article Tags :