Как работает препроцессор в C?

Почему ответ на приведенный ниже код 16? Кто-нибудь может объяснить работу этой программы?

#define SQUARE(n) n*n
void main()
{
    int j;      
    j =16/SQUARE(2);

    printf("\n j=%d",j);
    getch();
}

Если мы напишем тот же код, как показано ниже, то ответ будет 4:

//the ans is 4 why?
#include<stdio.h>
#include<conio.h>

#define SQUARE(n) n*n

void main()
{
    int j;      
    j =16/(SQUARE(2));

    printf("\n j=%d",j);
    getch();
}

Ответы на вопрос(9)

Ваш ответ на вопрос