logo

Vartotojo nustatyta funkcija C

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:

  1. Funkcijos prototipas
  2. Funkcijos apibrėžimas
  3. 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);>
Funkcijos prototipas

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:

  1. Funkcijos parametrai
  2. Funkcinis kūnas
  3. 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:

  1. Skambinti pagal vertę
  2. 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.