A vartotojo apibrėžta funkcija yra funkcijos tipas C kalba, kurią apibrėžia pats vartotojas, kad atliktų tam tikrą konkrečią užduotį. Tai suteikia kodo pakartotinį naudojimą ir mūsų programos moduliškumą. Vartotojo nustatytos funkcijos skiriasi nuo įtaisytųjų, nes jų veikimą nurodo vartotojas, o jas naudoti nereikia antraštės failo.
Šiame straipsnyje mes sužinosime apie vartotojo apibrėžta funkcija, funkcijos prototipas, funkcijos apibrėžimas, funkcijos iškvietimas ir įvairūs būdai, kuriais galime perduoti parametrus funkcijai.
Kaip naudoti vartotojo nustatytas funkcijas C?
Norėdami naudoti vartotojo apibrėžtą funkciją, pirmiausia turime suprasti skirtingas jos sintaksės dalis. Vartotojo apibrėžtą funkciją C galima suskirstyti į tris dalis:
- Funkcijos prototipas
- Funkcijos apibrėžimas
- Funkcijos skambutis
C funkcijos prototipas
Funkcijos prototipas taip pat žinomas kaip funkcijos deklaracija, kuri nurodo funkcijos pavadinimas, funkcijos parametrai, ir grąžinimo tipas . Funkcijos prototipe nėra funkcijos turinio. Iš esmės jis naudojamas informuoti kompiliatorių apie vartotojo apibrėžtą funkciją, kuri gali būti naudojama vėlesnėje programos dalyje.
Sintaksė
return_type function_name (type1 arg1 , type2 arg2 , ... typeN argN );>
Taip pat galime praleisti argumentų pavadinimą funkcijos prototipe. Taigi,
return_type function_name (type1 , type2 , ... typeN);>
C Funkcijos apibrėžimas
Kai funkcija iškviečiama, funkcijos apibrėžime yra tikrieji sakiniai, kurie bus vykdomi. Visi funkcijos apibrėžimo teiginiai yra viduje { } petnešos.
Sintaksė
return_type function_name (type1 arg1 , type2 arg2 .... typeN argN ) { // actual statements to be executed // return value if any }> Pastaba: Jei funkcijos iškvietimas yra po funkcijos apibrėžimo, galime praleisti funkcijos prototipo dalį ir tiesiogiai apibrėžti funkciją.
C Funkcijos iškvietimas
Norėdami perkelti valdymą į vartotojo apibrėžtą funkciją, turime ją iškviesti. Funkcijos vadinamos jų pavadinimais, po kurių pateikiami apvalūs skliaustai. Jų argumentai pateikiami skliaustuose.
java apverčia eilutę
Sintaksė
function_name(arg1, arg2, ... argN);>
Vartotojo nustatytos funkcijos pavyzdys
Toliau pateikta C programa parodo, kaip mūsų programoje naudoti vartotojo nustatytas funkcijas.
C
// C Program to illustrate the use of user-defined function> #include> // Function prototype> int> sum(>int>,>int>);> // Function definition> int> sum(>int> x,>int> y)> {> >int> sum;> >sum = x + y;> >return> x + y;> }> // Driver code> int> main()> {> >int> x = 10, y = 11;> >// Function call> >int> result = sum(x, y);> >printf>(>'Sum of %d and %d = %d '>, x, y, result);> >return> 0;> }> |
>
>Išvestis
Sum of 10 and 11 = 21>
Funkcijų apibrėžimo komponentai
Yra trys funkcijos apibrėžimo komponentai:
- Funkcijos parametrai
- Funkcinis kūnas
- Grąžinimo vertė
1. Funkcijų parametrai
Funkcijos parametrai (taip pat žinomi kaip argumentai) yra reikšmės, kurias skambinantysis perduoda iškviestai funkcijai. Funkcijai galime neperduoti nė vieno funkcijos parametro arba jų skaičių.
Funkcijos apibrėžime turime apibrėžti funkcijos pavadinimą ir jos tipą, o funkcijos iškvietime galime perduoti tik tą patį parametrų skaičių ir tipą.
faktorialas c
Pavyzdys
int foo ( int a, int b) ;>
Čia a ir b yra funkciniai parametrai.
Pastaba: C kalba suteikia metodą, kuriuo funkcijai galime perduoti kintamą argumentų skaičių. Tokios funkcijos vadinamos variadine funkcija .
2. Funkcinis korpusas
Funkcijos turinys yra teiginių, įtrauktų į { } skliaustus, rinkinys. Tai yra teiginiai, kurie vykdomi, kai iškviečiama funkcija.
Pavyzdys
int foo (int a, int b) { int sum = a + b; return sum; }> Čia teiginiai tarp { ir } yra funkcinis kūnas.
3. Grąžinimo vertė
Grąžinama reikšmė yra reikšmė, kurią funkcija grąžina savo skambintojui. Funkcija gali grąžinti tik vieną reikšmę ir ji yra neprivaloma. Jei neturi būti grąžinama jokia reikšmė, grąžinimo tipas apibrėžiamas kaip negaliojantis.
The grąžinti raktinį žodį naudojamas norint grąžinti funkcijos reikšmę.
Sintaksė
return ( expression );>
Pavyzdys
int foo (int a, int b) { return a + b; }> Pastaba: Galime naudoti rodykles arba struktūras, norėdami grąžinti kelias reikšmes iš funkcijos C.
java masyvo dalis
Parametrų perdavimas vartotojo nustatytoms funkcijoms
Mes galime perduoti parametrus funkcijai C, naudodami du metodus:
- Skambinti pagal vertę
- Skambinti pagal nuorodą
1. Skambinkite pagal vertę
Atliekant iškvietimą pagal vertę, reikšmės kopija perduodama funkcijai, o atlikti funkcijos pakeitimai neatspindi reikšmės. Faktiniai ir formalūs argumentai kuriami skirtingose atminties vietose.
Pavyzdys
C
// C program to show use of> // call by value> #include> void> swap(>int> a,>int> b)> {> >int> temp = a;> >a = b;> >b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d
'>, x,> >y);> >swap(x, y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }> |
Parsisiųsti youtube video vlc
>
>Išvestis
Values of x and y before swap are: 10, 20 Values of x and y after swap are: 10, 20>
Pastaba: Reikšmės skambutyje nekeičiamos pagal vertę, nes jos neperduodamos pagal nuorodą.
2. Skambinkite pagal nuorodą
Iškviečiant nuorodą, argumento adresas perduodamas funkcijai, o atlikti funkcijos pakeitimai atsispindi vertėse. Mes naudojame rodyklės reikiamo tipo, kad gautumėte adresą funkcijoje.
Pavyzdys
C
centrinis vaizdas css
// C program to implement> // Call by Reference> #include> void> swap(>int>* a,>int>* b)> {> >int> temp = *a;> >*a = *b;> >*b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d
'>, x,> >y);> >swap(&x, &y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }> |
>
>Išvestis
Values of x and y before swap are: 10, 20 Values of x and y after swap are: 20, 10>
Daugiau informacijos rasite šiame straipsnyje – Skirtumas tarp skambučio pagal vertę ir skambučio pagal nuorodą
Vartotojo nustatytų funkcijų privalumai
Funkcijų naudojimo programoje pranašumai yra šie:
- Naudojant funkcijas galima išvengti kodo dubliavimo programose. Kodas gali būti parašytas greičiau ir dėl to geriau skaitomas.
- Kodą galima padalinti ir užkariauti naudojant funkcijas. Šis procesas žinomas kaip „Skaldyk ir valdyk“. Sunku įrašyti didelius kiekius kodo pagrindinėje funkcijoje, taip pat testuoti ir derinti. Mūsų vieną užduotį galima suskirstyti į keletą mažesnių papildomų užduočių naudojant funkcijas, taip sumažinant bendrą sudėtingumą.
- Pavyzdžiui, naudojant C kalboje pow, sqrt ir pan., nežinant, kaip tai įgyvendinama, galima paslėpti įgyvendinimo detales su funkcijomis.
- Nedaug pakeitus arba be jokių pakeitimų, vienoje programoje sukurtos funkcijos gali būti naudojamos kitoje, todėl sutrumpėja kūrimo laikas.