Con

#define pippo (2)

stai dicendo al preprocessore di sostituire ongi occorrenza della 'parola' pippo all'interno del programma con (2); quindi se nel programma hai una riga con scritto:

int a = pippo;

prima di compilare, quell airga sarà trasformata dal preprocessore in:

int a = (2);

con define si definisce una macro, che può anche prendere argomenti, e il preprocessore si preocupa di sostituire le macro prima della compilazione; ciò che devi tenere presente è che non dichiari variabili, si tratta semplicemente di sostituire del testo prima della compilazione.

Un esempio di macro con argomenti è :

#define stampa(x) printf("Il valore della variabilè è: %d", x);

con questa macro la riga:

stampa(a);

sarà sostituita da:

printf("Il valore della variabilè è: %d", a);