Esikääntäjän makro-ominaisuutta hyväksikäyttäen voimme määritellä ohjelmaamme vakioita; eli arvoja jotka esiintyvät ohjelmassa täsmälleen yhden kerran. Näin ohjelmastamme saadaan helpommin muuteltava. Esimerkiksi seuraava ohjelma tulostaisi myös tekstin " Hello world! ":
/* Ohjelma tulostaa tekstin Hello world! */
#include <stdio.h>
#define TERVE "Hello "
#define MAAILMA "world"
int main(void)
{
printf(TERVE MAAILMA"!\n");
return 0;
}
Miksikö? Koska esikääntäjä muuttaisi lauseen
printf(TERVE MAAILMA"!\n");
muotoon
printf("Hello " "world""!\n");
Kun tästä lisäksi poistetaan ylimääräiset " white space "- merkit saadaan:
printf("Hello world!\n");