C++-manual
Förutgående | Kapitel 10. Preprocessorn | Nästa

# 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.

Förutgående | Hem | Nästa
Inkludera filer | Upp | Makron