17.4.1 Helpottaa kirjoittamista
Mutta entäpä jos haluaisimme käyttää toisen
nimistä muuttujaa. Määriteltäisiinkö uusi makro?
Onneksi C- kielen esiprosessori sallii parametrin käytön makroissa.
Siispä voimme rakentaa vaikkapa makron (N_S, name and size)
#define N_S(nimi) nimi,sizeof(nimi)
jonka esiintymän esiprosessori muuttaa vastaavasti
char jono[80],elain[20];
f_lue_jono(f,N_S(jono));
kopioi_jono(N_S(elain),"Kissa");
cin.getline(N_S(jono));
esiprosessori ==>
f_lue_jono(f,jono,sizeof(jono));
kopioi_jono(elain,sizeof(elain),"Kissa");
cin.getline(jono,sizeof(jono));
kääntäjä ==>
f_lue_jono(f,jono,80);
kopioi_jono(elain,20,"Kissa");
cin.getline(jono,80);
Siis makron parametrilistassa olevat sanat korvataan ensin niillä sanoilla
jotka ovat makron esiintymässä. Tämän jälkeen
esiintymä korvataan tällä uudella merkkijonolla ja lopulta
korvattu merkkijono annetaan kääntäjän
käsiteltäväksi.