Šioje pamokoje išmoksite sukurti vartotojo apibrėžtas funkcijas programuodami C, naudodamiesi pavyzdžiu.
Funkcija yra kodo blokas, kuris atlieka konkrečią užduotį.
C leidžia apibrėžti funkcijas pagal jūsų poreikius. Šios funkcijos yra žinomos kaip vartotojo nustatytos funkcijos. Pavyzdžiui:
Tarkime, jums reikia sukurti apskritimą ir nuspalvinti jį, atsižvelgiant į spindulį ir spalvą. Norėdami išspręsti šią problemą, galite sukurti dvi funkcijas:
createCircle()
funkcijacolor()
funkcija
Pavyzdys: vartotojo apibrėžta funkcija
Čia yra dviejų sveikųjų skaičių pridėjimo pavyzdys. Norėdami atlikti šią užduotį, mes sukūrėme vartotojo apibrėžtą 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 )
Funkcijos prototipas
Funkcijos prototipas yra tiesiog funkcijos deklaravimas, kuriame nurodomas funkcijos pavadinimas, parametrai ir grąžinimo tipas. Jame nėra funkcijos kūno.
Funkcijos prototipas pateikia kompiliatoriui informaciją, kad vėliau funkcija gali būti naudojama programoje.
Funkcijos prototipo sintaksė
returnType functionName (type1 argumentas1, type2 argumentas2,…);
Ankstesniame pavyzdyje int addNumbers(int a, int b);
yra funkcijos prototipas, kuris pateikia šią informaciją kompiliatoriui:
- funkcijos pavadinimas yra
addNumbers()
- funkcijos grąžinimo tipas yra
int
int
funkcijai perduodami du tipo argumentai
Funkcijos prototipas nereikalingas, jei vartotojo apibrėžta funkcija yra apibrėžta prieš main()
funkciją.
Funkcijos iškvietimas
Programos valdymas perkeliamas į vartotojo nustatytą funkciją ją iškviečiant.
Funkcijos iškvietimo sintaksė
functionName (argumentas1, argumentas2,…);
Ankstesniame pavyzdyje funkcijos iškvietimas atliekamas naudojant funkcijos addNumbers(n1, n2);
viduje pateiktą sakinį main()
.
Funkcijos apibrėžimas
Funkcijos apibrėžime yra kodo blokas, skirtas konkrečiai užduočiai atlikti. Mūsų pavyzdyje pridedami du skaičiai ir grąžinama.
Funkcijos apibrėžimo sintaksė
returnType functionName (type1 argumentas1, type2 argumentas2,…) (// funkcijos turinys)
Kai iškviečiama funkcija, programos valdymas perkeliamas į funkcijos apibrėžimą. Kompiliatorius pradeda vykdyti kodus funkcijos korpuse.
Argumentų perdavimas funkcijai
Programuojant argumentas reiškia kintamąjį, perduotą funkcijai. Pirmiau pateiktame pavyzdyje funkcijos kvietimo metu perduodami du kintamieji n1 ir n2.
Parametrai a ir b priima perduotus argumentus funkcijos apibrėžime. Šie argumentai vadinami formaliais funkcijos parametrais.
Funkcijai perduotų argumentų tipas ir formalūs parametrai turi sutapti, kitaip kompiliatorius sukels klaidą.
Jei n1 yra char tipo, taip pat turėtų būti char tipo. Jei n2 yra plūdinio tipo, kintamasis b taip pat turėtų būti plūduriuojantis.
Funkciją taip pat galima iškviesti nepateikus argumento.
Grąžinimo pareiškimas
Grąžinimo sakinys nutraukia funkcijos vykdymą ir grąžina reikšmę skambinančiajai funkcijai. Programos valdymas perkeliamas į skambinimo funkciją po grąžinimo sakinio.
Ankstesniame pavyzdyje rezultato kintamojo reikšmė grąžinama į pagrindinę funkciją. main()
Funkcijos sumos kintamajam priskiriama ši reikšmė.
Grąžinimo teiginio sintaksė
grįžimas (išraiška);
Pavyzdžiui,
grąžinti a; grįžimas (a + b);
Vertės, grąžintos iš funkcijos, tipas ir grąžinimo tipas, nurodytas funkcijos prototipe ir funkcijos apibrėžime, turi sutapti.
Apsilankykite šiame puslapyje, jei norite sužinoti daugiau apie argumentų perdavimą ir funkcijos grąžinimo vertę.