logo

C Funkcijas

A funkcija C ir paziņojumu kopums, kas pēc izsaukšanas veic noteiktu uzdevumu. Tas ir C programmas pamatelements, kas nodrošina modularitāti un koda atkārtotu izmantošanu. Funkcijas programmēšanas paziņojumi ir iekļauti iekšpusē { } lencēm , kam ir noteikta nozīme un kas veic noteiktas darbības. Citās valodās tās sauc arī par apakšprogrammām vai procedūrām.

Šajā rakstā mēs uzzināsim par funkcijām, funkciju definīciju. deklarācija, argumenti un parametri, atgriešanas vērtības un daudz kas cits.

Funkciju sintakse C valodā

Funkcijas sintaksi var iedalīt 3 aspektos:



    Funkciju deklarācija Funkciju definīcija Funkciju izsaukumi

Funkciju deklarācijas

Funkcijas deklarācijā mums ir jānorāda funkcijas nosaukums, tās atgriešanas veids, kā arī tās parametru skaits un veids. Funkcijas deklarācija norāda kompilatoram, ka kaut kur citur programmā ir definēta funkcija ar doto nosaukumu.

Sintakse

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

Funkcijas deklarējot, parametra nosaukums nav obligāts. Mēs varam arī deklarēt funkciju, neizmantojot datu mainīgo nosaukumus.

Piemērs

int sum (int a , int b ); int sum (int , int);>
Funkcijas deklarācija

Funkcijas deklarācija

Piezīme: Funkcija C vienmēr ir jādeklarē globāli pirms tās izsaukšanas.

Funkcijas definīcija

Funkcijas definīcija sastāv no faktiskiem paziņojumiem, kas tiek izpildīti, kad funkcija tiek izsaukta (t.i., kad programmas vadība nonāk pie funkcijas).

C funkcija parasti tiek definēta un deklarēta vienā solī, jo funkcijas definīcija vienmēr sākas ar funkcijas deklarāciju, tāpēc mums tā nav skaidri jādeklarē. Tālāk sniegtais piemērs kalpo gan kā funkcijas definīcija, gan kā deklarācija.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Funkciju definīcija C

Funkcijas definīcija C

Funkcijas izsaukums

Funkcijas izsaukums ir paziņojums, kas uzdod kompilatoram izpildīt funkciju. Funkcijas izsaukumā mēs izmantojam funkcijas nosaukumu un parametrus.

Zemāk esošajā piemērā tiek izsaukta pirmā summas funkcija un 10,30 tiek nodotas summas funkcijai. Pēc funkcijas izsaukšanas a un b summa tiek atgriezta, un arī vadība tiek atgriezta atpakaļ uz programmas galveno funkciju.

Funkcijas darbība C

Funkcijas darbība C

Piezīme: Funkciju izsaukšana ir nepieciešama, lai programmas vadību nodrošinātu funkcijas definīcijā. Ja tas netiks izsaukts, funkciju paziņojumi netiks izpildīti.

C funkcijas piemērs

C




// C program to show function> // call and definition> #include> // Function that takes two parameters> // a and b as inputs and returns> // their sum> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >// Calling sum function and> >// storing its value in add variable> >int> add = sum(10, 30);> > >printf>(>'Sum is: %d'>, add);> >return> 0;> }>

>

peldēt pie auklas
>

Izvade

Sum is: 40>

Kā mēs pamanījām, mēs neesam izmantojuši skaidru funkciju deklarāciju. Mēs vienkārši definējām un saucām funkciju.

Funkcijas atgriešanas veids

Funkcijas atgriešanas veids norāda, kāda veida vērtība tiek atgriezta pēc visu funkciju izpildes. Ja mēs nevēlamies atgriezt vērtību, mēs varam izmantot datu tipu, kas nav spēkā.

Piemērs:

int func(parameter_1,parameter_2);>

Iepriekš minētā funkcija atgriezīs vesela skaitļa vērtību pēc paziņojumu palaišanas funkcijā.

Piezīme: No C funkcijas var atgriezt tikai vienu vērtību. Lai atgrieztu vairākas vērtības, mums ir jāizmanto norādes vai struktūras.

Funkciju argumenti

Funkciju argumenti (pazīstami arī kā funkciju parametri) ir dati, kas tiek nodoti funkcijai.

Piemērs:

int function_name(int var1, int var2);>

Atgriešanas veidi un argumenti

Programmēšanas valodā C funkcijas var izsaukt ar argumentiem vai bez tiem, un tās var atgriezt vērtības. Tie var vai nevar atgriezt vērtības izsaucošajām funkcijām.

  1. Funkcija bez argumentiem un bez atgriešanas vērtības
  2. Funkcija bez argumentiem un ar atgriešanās vērtību
  3. Funkcija ar argumentu un bez atgriešanas vērtības
  4. Funkcija ar argumentiem un atgriešanas vērtību

Lai uzzinātu vairāk par funkciju argumentiem un atgriešanas vērtībām, skatiet rakstu Funkciju argumenti un atgriešanas vērtības valodā C.

Kā darbojas C funkcija?

Funkcijas C darbību var iedalīt šādās darbībās, kā minēts tālāk:

    Funkcijas deklarēšana: funkcijas deklarēšana ir solis, kurā mēs deklarējam funkciju. Šeit mēs definējam funkcijas atgriešanas veidus un parametrus.
  1. Funkcijas definēšana:
  2. Funkcijas izsaukšana: funkcijas izsaukšana ir solis, kurā mēs izsaucam funkciju, nododot funkcijas argumentus. Funkcijas izpilde: Funkcijas izpilde ir solis, kurā mēs varam palaist visus priekšrakstus funkcijas iekšpusē, lai iegūtu gala rezultātu. Vērtības atgriešana: vērtības atgriešana ir darbība, kurā tiek atgriezta aprēķinātā vērtība pēc funkcijas izpildes. Funkcijas iziešana ir pēdējais solis, kurā visa mainīgajiem lielumiem, funkcijām utt. atvēlētā atmiņa tiek iznīcināta, pirms tiek pilnībā kontrolēta galvenā funkcija.

Funkciju veidi

C ir divu veidu funkcijas:

    Bibliotēkas funkcijas Lietotāja definētas funkcijas
Funkciju veidi

Funkciju veidi C

1. Bibliotēkas funkcija

Bibliotēkas funkcija tiek saukta arī par a iebūvēta funkcija . Jau pastāv kompilatora pakotne, kas satur šīs funkcijas, katrai no kurām ir noteikta nozīme un kas ir iekļauta pakotnē. Iebūvēto funkciju priekšrocība ir tā, ka tās var tieši izmantot bez definēšanas, savukārt lietotāja definētās funkcijas ir jādeklarē un jādefinē pirms to izmantošanas.

Piemēram:

pow(), sqrt(), strcmp(), strcpy() etc.>

C bibliotēkas funkciju priekšrocības

  • C Library funkcijas ir viegli lietojamas un optimizētas labākai veiktspējai.
  • C bibliotēkas funkcijas ietaupa daudz laika, t.i., funkciju izstrādes laiku.
  • C bibliotēkas funkcijas ir ērtas, jo tās vienmēr darbojas.

Piemērs:

C




// C program to implement> // the above approach> #include> #include> // Driver code> int> main()> {> >double> Number;> >Number = 49;> >// Computing the square root with> >// the help of predefined C> >// library function> >double> squareRoot =>sqrt>(Number);> > >printf>(>'The Square root of %.2lf = %.2lf'>,> >Number, squareRoot);> >return> 0;> }>

>

virkņu vienlīdzība java
>

Izvade

The Square root of 49.00 = 7.00>

2. Lietotāja definēta funkcija

Programmētāja izveidotās funkcijas ir zināmas kā lietotāja definētas funkcijas vai īpaši pielāgotas funkcijas . Lietotāja definētās funkcijas var uzlabot un modificēt atbilstoši programmētāja vajadzībām. Ikreiz, kad rakstām funkciju, kas ir specifiska gadījumam un nav definēta nevienā galvenes failā, mums ir jādeklarē un jādefinē savas funkcijas saskaņā ar sintaksi.

Lietotāja definēto funkciju priekšrocības

  • Maināmās funkcijas var mainīt pēc vajadzības.
  • Šo funkciju kods ir atkārtoti lietojams citās programmās.
  • Šīs funkcijas ir viegli saprast, atkļūdot un uzturēt.

Piemērs:

C




// C program to show> // user-defined functions> #include> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >int> a = 30, b = 40;> > >// function call> >int> res = sum(a, b);> >printf>(>'Sum is: %d'>, res);> >return> 0;> }>

>

>

Izvade

Sum is: 70>

Parametru nodošana funkcijām

Dati, kas nodoti, kad funkcija tiek izsaukta, ir zināmi kā faktiskie parametri. Tālāk esošajā programmā 10 un 30 ir zināmi kā faktiskie parametri. Formālie parametri ir mainīgais un datu tips, kā minēts funkcijas deklarācijā. Tālāk esošajā programmā a un b ir zināmi kā formālie parametri.

Parametru nodošana funkcijām

Parametru nodošana funkcijām

Mēs varam nodot argumentus funkcijai C divos veidos:

  1. Paiet garām vērtībai
  2. Iet pa atsauci

1. Paiet garām vērtībai

Parametru nodošana šajā metodē kopē vērtības no faktiskajiem parametriem formālos funkcijas parametros. Rezultātā funkcijās veiktās izmaiņas neatspoguļojas zvanītāja parametros.

Piemērs:

C




// C program to show use> // of call by value> #include> void> swap(>int> var1,>int> var2)> {> >int> temp = var1;> >var1 = var2;> >var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(var1, var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

tostring java metode
Izvade

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>

2. Iziet ar atsauci

Zvanītāja faktiskie parametri un funkcijas faktiskie parametri attiecas uz tām pašām vietām, tāpēc visas funkcijas ietvaros veiktās izmaiņas tiek atspoguļotas zvanītāja faktiskajos parametros.

Piemērs:

C




// C program to show use of> // call by Reference> #include> void> swap(>int> *var1,>int> *var2)> {> >int> temp = *var1;> >*var1 = *var2;> >*var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(&var1, &var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

Izvade

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>

Funkciju priekšrocības C

Funkcijas C ir ļoti noderīga C funkcija ar daudzām priekšrocībām, kā minēts tālāk:

  1. Funkcija var samazināt to pašu paziņojumu atkārtošanos programmā.
  2. Funkcija padara kodu lasāmu, nodrošinot mūsu programmas modularitāti.
  3. Nav fiksēta zvanīšanas funkciju skaita, to var izsaukt tik reižu, cik vēlaties.
  4. Funkcija samazina programmas lielumu.
  5. Kad funkcija ir deklarēta, varat to izmantot, nedomājot par funkcijas iekšējo darbību.

Funkciju trūkumi C

Tālāk ir minēti galvenie C funkciju trūkumi:

  1. Nevar atgriezt vairākas vērtības.
  2. Atmiņa un laiks, kas saistīts ar steka kadru piešķiršanu un programmas vadības pārsūtīšanu.

Secinājums

Šajā rakstā mēs apspriedām šādus punktus par funkciju, kā minēts tālāk:

virkne atrast c++
  1. Funkcija ir koda bloks, ko programmā var atkārtoti izmantot tik reižu, cik mēs vēlamies.
  2. Lai izmantotu funkciju, mums ir jāizsauc funkcija.
  3. Funkciju deklarācija ietver funkcijas_nosaukums, atgriešanas veids un parametri.
  4. Funkcijas definīcija ietver funkcijas pamattekstu.
  5. Funkcijai ir divu veidu lietotāja definēta funkcija un bibliotēkas funkcija.
  6. Funkcijā mēs varam izsaukt divus veidus pēc vērtības un izsaukt pēc atsauces atbilstoši nodotajām vērtībām.

Bieži uzdotie jautājumi par funkcijām C

Q1. Definējiet funkcijas.

Atbilde:

Funkcijas ir koda bloks, kas tiek izpildīts katru reizi, kad tās tiek izsauktas programmas izpildes laikā.

Q2. Kas ir priekšlaicīga deklarācija?

Atbilde:

Dažreiz mēs definējam funkciju pēc tās izsaukuma, lai nodrošinātu labāku lasāmību. Šādos gadījumos funkciju deklarējam pirms to definīcijas un izsaukuma. Šāda deklarācija tiek saukta par priekšu deklarāciju.

Q3. Kāda ir atšķirība starp funkcijas deklarāciju un definīciju?

Atbilde:

Tādi dati kā funkcijas nosaukums, atgriešanas veids un parametrs ir iekļauti funkcijas deklarācijā, savukārt definīcija ir funkcijas pamatteksts. Visi šie dati tiek kopīgoti ar kompilatoru atbilstoši to atbilstošajām darbībām.

Q4. Kāda ir atšķirība starp funkciju argumentiem un parametriem?

Atbilde:

Funkciju parametri ir vērtības, kas deklarētas funkcijas deklarācijā. Tā kā funkcijas argumenti ir vērtības, kas tiek nodotas funkcijā funkcijas izsaukšanas laikā.

Piemērs:

 int func(int x,int y); func(10,20);>

Šeit int x un int y ir parametri, savukārt 10 un 20 ir funkcijai nodotie argumenti.

Lai uzzinātu vairāk par to, skatiet šo rakstu - Atšķirība starp argumentiem un parametriem C.

Q5. Vai varam atgriezt vairākas vērtības no C funkcijas?

Atbilde:

Nē, parasti no funkcijas nav iespējams atgriezt vairākas vērtības. Bet mēs varam izmantot vai nu norādes uz statiskām vai kaudzes atmiņas vietām, lai atgrieztu vairākas vērtības, vai arī mēs varam ievietot datus struktūra un pēc tam atgriezt struktūru.

Lai uzzinātu vairāk par to, skatiet šo rakstu — Kā atgriezt vairākas vērtības no funkcijas C vai C++?

Q6. Kāds ir faktiskais un formālais parametrs?

Atbilde:

Formālais parametrs: Funkcijas prototipā deklarētie mainīgie ir zināmi kā formālie argumenti vai parametri.

Faktiskais parametrs: Vērtības, kas tiek nodotas funkcijā, ir zināmas kā faktiskie argumenti vai parametri.