Una macro è un identificatore definito all interno di una direttiva #define del preprocessore.
L identificatore della macro sarà rimpiazzato dal testo di sostiruzione, prima cheil programma sia compilato. Le macro possono essere definite con o senza argomenti. Una macro senza argomenti sarà elaborata come una costante simbolica. In una macro con argomenti, questi saranno prima rimpiazzati all interno del testo di sostituzione e solo in seguito sarò espansa la macro, in altri termini il testo di sostituzione rimpiazzerà la lista degli identificatori e degli argomenti all interno del programma.
Esempio
#define CIRCLEAREA (x) (3.14*(x)*(x))
in qualsiasi posto del file appaia CIRCLEAREA (y), il valore di y sarà usato sal posto di x all interno del testo di sostituzione.