Macro just indicates replacement, not the function call.
#include
#define add(x1, y1) x1 + y1
#define mult(x1,y1) x1 * y1
main ()
{
int a,b,c,d,e;
a = 2;
b = 3;
c = 4;
d = 5;
e = mult(add(a, b), add(c, d));
// mult(a+b, c+d)
// a+b * c+d
printf ("The value of e is %d\n", e);
}
The value of e is 19