Selles õpetuses õpite näite abil looma C-programmeerimisel kasutaja määratletud funktsioone.
Funktsioon on koodiplokk, mis täidab konkreetset ülesannet.
C võimaldab teil määratleda funktsioonid vastavalt teie vajadustele. Neid funktsioone nimetatakse kasutaja määratud funktsioonideks. Näiteks:
Oletame, et peate looma ringi ja värvima selle sõltuvalt raadiusest ja värvist. Selle probleemi lahendamiseks saate luua kaks funktsiooni:
createCircle()
funktsiooncolor()
funktsioon
Näide: kasutaja määratud funktsioon
Siin on näide kahe täisarvu lisamiseks. Selle ülesande täitmiseks oleme loonud kasutaja määratletud addNumbers()
.
#include int addNumbers(int a, int b); // function prototype int main() ( int n1,n2,sum; printf("Enters two numbers: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // function call printf("sum = %d",sum); return 0; ) int addNumbers(int a, int b) // function definition ( int result; result = a+b; return result; // return statement )
Funktsiooni prototüüp
Funktsiooni prototüüp on lihtsalt funktsiooni deklaratsioon, mis määrab funktsiooni nime, parameetrid ja tagastuse tüübi. See ei sisalda funktsiooni keha.
Funktsiooni prototüüp annab kompilaatorile teavet selle kohta, et seda funktsiooni võib hiljem programmis kasutada.
Funktsiooni prototüübi süntaks
returnType functionName (tüüp1 argument1, tüüp2 argument2,…);
Kas ülaltoodud näites int addNumbers(int a, int b);
on funktsiooni prototüüp, mis annab kompilaatorile järgmise teabe:
- funktsiooni nimi on
addNumbers()
- funktsiooni return tüüp on
int
int
funktsioonile edastatakse kaks tüüpi argumenti
Funktsiooni prototüüpi pole vaja, kui kasutaja määratletud funktsioon on enne main()
funktsiooni määratletud .
Funktsiooni kutsumine
Programmi juhtimine viiakse kasutaja määratud funktsioonile, helistades sellele.
Funktsioonikõne süntaks
functionName (argument1, argument2,…);
Ülaltoodud näites tehakse funktsiooni väljakutse funktsiooni addNumbers(n1, n2);
sees oleva lause main()
abil.
Funktsiooni määratlus
Funktsiooni määratlus sisaldab koodiploki konkreetse ülesande täitmiseks. Meie näites kahe numbri lisamine ja tagastamine.
Funktsiooni määratluse süntaks
returnType functionName (type1 argument1, type2 argument2,…) (// funktsiooni keha)
Funktsiooni kutsumisel viiakse programmi juhtimine üle funktsiooni määratlusse. Ja kompilaator hakkab koode täitma funktsiooni kehas.
Argumentide edastamine funktsioonile
Programmeerimisel viitab argument funktsioonile edastatud muutujale. Ülaltoodud näites edastatakse funktsioonikõne ajal kaks muutujat n1 ja n2.
Parameetrid a ja b aktsepteerivad funktsiooni definitsioonis edastatud argumente. Neid argumente nimetatakse funktsiooni formaalseteks parameetriteks.
Funktsioonile edastatud argumentide tüüp ja formaalsed parameetrid peavad vastama, vastasel juhul loob kompilaator vea.
Kui n1 on char tüüpi, peaks a olema char tüüpi. Kui n2 on ujukitüüp, peaks muutuja b olema ka ujukitüüp.
Funktsiooni saab kutsuda ka argumenti edastamata.
Tagasi avaldus
Return-lause lõpetab funktsiooni täitmise ja tagastab kutsuva funktsiooni väärtuse. Programmi juhtimine viiakse pärast tagasipöördumislauset helistamisfunktsiooni.
Ülaltoodud näites tagastatakse tulemuse muutuja väärtus põhifunktsioonile. Funktsiooni summaarne muutuja main()
omistab selle väärtuse.
Tagasilause süntaks
tagasitulek (väljend);
Näiteks,
tagastama a; tagasipöördumine (a + b);
Funktsioonilt tagastatava väärtuse tüüp ning funktsiooni prototüübis ja funktsiooni definitsioonis määratud tagastuse tüüp peavad vastama.
Funktsiooni argumentide edastamise ja väärtuse tagastamise kohta lisateabe saamiseks külastage seda lehte.