7.4.1 Vakiomerkkijonot
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!":
c-alk\hello2.c - tervehdys vakioksi
/* 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");
- Kirjoita edellisestä ohjelmasta suomenkielellä tulostava versio
(= suomenna ohjelma).
- Kirjoita aikaisemmasta "Matti Meikäläinen asuu Kortepohjassa" -
ohjelmasta versio, jossa nimi, osoite ja puhelin on esitelty #define-
direktiivillä.