previous next Up Title Contents Index

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.


previous next Up Title Contents Index