Konstanter

I traditionell C har man använt preprocessorn för att definiera olika typer av konstanter. I C++ gör man hellre dylika definitioner med const, men det gamla sättet finns kvar för dem som vill använda det. Man använder här preprocessorns nyckelord #define. Notera att inte heller detta ord är ett reserverat ord i C++ (eller C). Den allmänna formen för en konstantdefinition är:

#define konstantnamn värde

Här behöver man inte heller använda ett semikolon för att avsluta raden, eftersom det är frågan om ett preprocessordirektiv som aldrig ens ses av kompilatorn. Några exempel på definitioner är.

#define MEDDELANDE "Hello World!"
#define MIN_VARDE  0
#define MaxVarde   100

Traditionellt har definitioner till preprocessorn alltid getts namn med stora bokstäver, närmast för att separera dessa från normala variabler. Konstanter som görs med const i C++ skrivs däremot normalt med både små och stora bokstäver. Det som preprocessorn gör då den stöter på t.ex. MEDDELANDE ovan i en programfil är att den helt enkelt ersätter texten MEDDELANDE med texten "Hello World!", alltså normal textsubstitution. För kompilatorn ser texten sedan ut som vilken text eller vilket tal som helst. Man kan avdefiniera en konstant genom att använda #undef. Vi kan t.ex. avdefiniera MaxVarde och ersätta den med en med stora bokstäver:

#undef MaxVarde
#define MAX_VARDE 100

Vi kommer nedan att se ett sammanhang där #define används i stor grad ännu idag. I övriga sammanhang rekommenderas som sagt att konstanter definierade med const används istället.