Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

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.


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys