Open In App

Extra brackets with function names in C/C++

Improve
Improve
Like Article
Like
Save
Share
Report

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

Last Updated : 21 Jun, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads