Alla on esimerkki makromäärittelystä:
#define MAX(a,b) ((a) > (b) ? (a) : (b))
Kun ohjelmassa on tällainen määrittely, korvataan kaikki ne MAX:n esiintymät, jotka ovat käännettävässä tiedostossa tämän määrittelyn jälkeen, korvaustekstillä, missä a:n paikalla on MAX:n ensimmäinen parametri ja b:n paikalla toinen parametri.
Esimerkiksi, jos ohjelmassa on rivi
x = MAX (z, y); /*Tässä saa käyttää välilyöntejä haluamallaan tavalla*/
esikääntäjä tuottaa ohjelmaan rivin
x = ((z) > (y) ? (z) : (y));