I have idea about macro preprocessor directive.In below question how replacement in source code is done by compiler that it is giving output as "y is 392"
#include <stdio.h>
#define CUBE(x) (x*x*x)
void main(void)
{
int x;
int y;
x = 5;
y = CUBE(++x);
printf("y is %d\n", y);
}
output:y is 392.