Open In App

Extra brackets with function names in C/C++

Last Updated : 21 Jun, 2018
Comments
Improve
Suggest changes
Like Article
Like
Report
Consider below C program. The program has extra bracket around function name. C
// 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
// 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

Next Article
Article Tags :
Practice Tags :

Similar Reads