previous next Up Title Contents Index

19.4.2 Makro virhekäsittelyn avuksi


Toisaalta usein voi tulla tilanne, jossa aliohjelman jatkaminen on kiinni siitä, tuleeko jostakin apualiohjelmasta virhe vai ei:
	...
	const char *virhe;
	virhe = luo_taulukko(max_koko);
	if ( virhe ) return virhe;
	...
Tätä käsittelyä varten ei voida helpolla tehdä aliohjelmaa, mutta voidaan tehdä kyllä makro, jota voitaisiin kutsua:
	IF_ERR_RETURN(luo_taulukko(max_koko));
Makron toteutus olisi vaikkapa seuraavanlainen:
	#define IF_ERR_RETURN(v) { const char *virhe=(v); if ( virhe ) return virhe; }

Tehtävä 19.167 IF_ERR_RETURN

Pura auki makrokutsu IF_ERR_RETURN(luo_taulukko(max_koko));


previous next Up Title Contents Index