Hello Aspi, I am showing how conditional macro is expanded with an example. Consider the following C program.
#define Y 3
#define Y 300
printf("Value of Y is %d\n", Y);
Now save the above program as example.c and compile in the following ways.
gcc -E -DX=1 example.c
gcc -E -DX=10 example.c
Observe the outputs of both compilations (printf statement), you will understand how conditional macros are expanded during preprocessing phase.