previous next Up Title Contents Index

14.5.5 Parametrien lisääminen

Usein itse tehtyä aliohjelmaa voidaan jälkeenpäin tehdä yleiskäyttöisemmäksi tai paremmaksi lisäämällä siihen parametreja.

Olkoon alkuperäinen ongelma sellainen, että on esitetty merkkijono muodossa "a- f". Tämä pitäisi saada muutettua muotoon "abcdef". Tarkoitusta varten kirjoitetaan aliohjelma tayta_valit.

Mitkä ovat aliohjelman parametrit? Tietysti alkuperäinen jono. Mihin tulos? Tähän tarvitaan ehkä toinen parametri. Nimessään aliohjelma voi vielä palauttaa osoitteen tulosjonoon, kuten merkkijonofunktioilla yleensäkin on tapana:

	char merkit[4]="a- f", tulos[20], sallitut[20];
	...
	tayta_valit(tulos,merkit);
	...tai...
	strcat(sallitut,tayta_valit(tulos,merkit)); 
Funktion esittely on siis muotoa:
	char *tayta_valit(char *tulos, const char *jono);
	... 
Myöhemmin huomataan, että tulos- jonon maksimipituus voidaan ylittää! Siksi funktion kutsuun lisätäänkin yksi parametri:
	tayta_valit(tulos,20,merkit); 
ja vastaavasti esittelyyn:
	char *tayta_valit(char *tulos, int max_pit, const char *jono); 
Toinen vastaava esimerkki oli seuraava_pvm aliohjelman muuttaminen aliohjelmaksi lisaa_pvm.


previous next Up Title Contents Index