C Tutorial/Preprocessor/MACRO
MACRO
Replacement of the identifier by using a statement or expression.
#define CUBE(x) x*x*x
#include <stdio.h>
main (){
int k = 5;
int j = 0;
j = CUBE(k);
printf ("value of j is %d\n", j);
}
value of j is 125
MACRO AND FUNCTION
Macro just indicates replacement, not the function call.
#include <stdio.h>
#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