A toiminto C:ssä on joukko lauseita, jotka kutsuttaessa suorittavat tietyn tehtävän. Se on C-ohjelman perusrakennuspalikka, joka tarjoaa modulaarisuuden ja koodin uudelleenkäytettävyyden. Funktion ohjelmointikäskyt ovat sisällä { } aaltosulkeet , joilla on tiettyjä merkityksiä ja jotka suorittavat tiettyjä toimintoja. Niitä kutsutaan myös muilla kielillä alirutiineiksi tai proseduureiksi.
Tässä artikkelissa opimme funktioista, funktion määrittelystä. ilmoitus, argumentit ja parametrit, palautusarvot ja paljon muuta.
C:n funktioiden syntaksi
Toiminnon syntaksi voidaan jakaa kolmeen osaan:
- Funktioilmoitus Funktiomääritelmä Funktiokutsut
Toimintoilmoitukset
Funktiomäärityksessä meidän on annettava funktion nimi, sen palautustyyppi sekä sen parametrien lukumäärä ja tyyppi. Funktiomäärittely kertoo kääntäjälle, että jossain muualla ohjelmassa on funktio, jolla on annettu nimi.
Syntaksi
return_type name_of_the_function ( parameter_1 , parameter_2 );>
Parametrin nimi ei ole pakollinen funktioita määritettäessä. Voimme myös ilmoittaa funktion ilman datamuuttujien nimiä.
Esimerkki
int sum (int a , int b ); int sum (int , int);>

Toimintoilmoitus
Huomautus: C:n funktio on aina ilmoitettava globaalisti ennen kutsumista.
Toiminnon määritelmä
Funktiomäärittely koostuu varsinaisista käskyistä, jotka suoritetaan, kun funktiota kutsutaan (eli kun ohjelman ohjaus tulee funktioon).
C-funktio määritellään ja ilmoitetaan yleensä yhdessä vaiheessa, koska funktion määrittely alkaa aina funktion määrittelystä, joten meidän ei tarvitse ilmoittaa sitä erikseen. Alla oleva esimerkki toimii sekä funktion määritelmänä että ilmoituksena.
return_type function_name (para1_type para1_name, para2_type para2_name ) { // body of the function }>

Toiminnon määritelmä C:ssä
Toimintokutsu
Funktiokutsu on käsky, joka käskee kääntäjää suorittamaan funktion. Käytämme funktion nimeä ja parametreja funktiokutsussa.
Alla olevassa esimerkissä kutsutaan ensimmäistä summafunktiota ja 10,30 välitetään summafunktiolle. Toiminnon jälkeen palautetaan a:n ja b:n summa ja myös ohjaus palautetaan takaisin ohjelman pääfunktioon.

Toiminnon toiminta C:ssä
Huomautus: Toimintokutsu on välttämätön ohjelman ohjauksen saattamiseksi funktion määrittelyyn. Jos sitä ei kutsuta, funktiolauseita ei suoriteta.
Esimerkki C-funktiosta
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;> }> |
>
apache
>Lähtö
Sum is: 40>
Kuten huomasimme, emme ole käyttäneet eksplisiittistä funktion määritystä. Me yksinkertaisesti määritimme ja kutsuimme funktion.
Toiminnon palautustyyppi
Toiminnon palautustyyppi kertoo, minkä tyyppinen arvo palautetaan, kun kaikki funktiot on suoritettu. Kun emme halua palauttaa arvoa, voimme käyttää void-tietotyyppiä.
Esimerkki:
int func(parameter_1,parameter_2);>
Yllä oleva funktio palauttaa kokonaisluvun arvon suoritettuaan lauseita funktion sisällä.
Huomautus: C-funktiosta voidaan palauttaa vain yksi arvo. Jotta voimme palauttaa useita arvoja, meidän on käytettävä osoittimia tai rakenteita.
Toiminnan argumentit
Funktioargumentit (tunnetaan myös nimellä funktioparametrit) ovat tietoja, jotka välitetään funktiolle.
Esimerkki:
int function_name(int var1, int var2);>
Palautustyypit ja -argumentit
C-ohjelmointikielessä funktioita voidaan kutsua joko argumenteilla tai ilman, ja ne voivat palauttaa arvoja. Ne saattavat palauttaa arvoja kutsuville funktioille.
- Funktio ilman argumentteja ja palautusarvoa
- Funktio ilman argumentteja ja palautusarvolla
- Funktio, jossa on argumentti ja ilman palautusarvoa
- Funktio argumenteilla ja palautusarvolla
Lisätietoja funktion argumenteista ja palautusarvoista on artikkelissa – C:n funktion argumentit ja palautusarvot.
Miten C-funktio toimii?
C-funktion toiminta voidaan jakaa seuraaviin vaiheisiin, kuten alla on mainittu:
- Funktion ilmoittaminen: Funktion ilmoittaminen on vaihe, jossa julistetaan funktio. Tässä määritellään funktion palautustyypit ja parametrit.
- Toiminnon määrittäminen: Funktion kutsuminen: Funktion kutsuminen on vaihe, jossa kutsumme funktiota välittämällä funktion argumentit. Toiminnon suorittaminen: Toiminnon suorittaminen on vaihe, jossa voimme suorittaa kaikki funktion sisältämät lauseet saadaksemme lopputuloksen. Arvon palauttaminen: Arvon palauttaminen on vaihe, jossa palautetaan funktion suorittamisen jälkeen laskettu arvo. Toiminnosta poistuminen on viimeinen vaihe, jossa kaikki muuttujille, funktioille jne. varattu muisti tuhotaan ennen kuin pääfunktiolle annetaan täysi hallinta.
Toimintojen tyypit
C:ssä on kahdenlaisia funktioita:
- Kirjastofunktiot Käyttäjän määrittämät toiminnot

C:n funktiotyypit
1. Kirjastotoiminto
Kirjastotoimintoa kutsutaan myös nimellä a sisäänrakennettu toiminto . Kääntäjäpaketti on jo olemassa, joka sisältää nämä toiminnot, joilla jokaisella on oma merkitys ja ne sisältyvät pakettiin. Sisäänrakennetuilla funktioilla on se etu, että niitä voidaan käyttää suoraan ilman määrittelyä, kun taas käyttäjän määrittämät toiminnot on ilmoitettava ja määriteltävä ennen käyttöä.
Esimerkiksi:
pow(), sqrt(), strcmp(), strcpy() etc.>
C-kirjastotoimintojen edut
- C-kirjastotoimintoja on helppo käyttää ja ne on optimoitu suorituskyvyn parantamiseksi.
- C-kirjastotoiminnot säästävät paljon aikaa eli funktion kehittämisaikaa.
- C-kirjastotoiminnot ovat käteviä, koska ne toimivat aina.
Esimerkki:
C
java visualisaattori
// 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;> }> |
>
>Lähtö
The Square root of 49.00 = 7.00>
2. Käyttäjän määrittämä toiminto
Ohjelmoijan luomia toimintoja kutsutaan käyttäjän määrittämiksi funktioiksi tai räätälöityjä toimintoja . Käyttäjän määrittämiä toimintoja voidaan parantaa ja muokata ohjelmoijan tarpeiden mukaan. Aina kun kirjoitamme funktion, joka on tapauskohtainen ja jota ei ole määritelty missään otsikkotiedostossa, meidän on ilmoitettava ja määriteltävä omat funktiomme syntaksin mukaan.
Käyttäjän määrittämien toimintojen edut
- Vaihdettavia toimintoja voidaan muokata tarpeen mukaan.
- Näiden toimintojen koodia voidaan käyttää uudelleen muissa ohjelmissa.
- Nämä toiminnot on helppo ymmärtää, korjata ja ylläpitää.
Esimerkki:
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;> }> |
>
>Lähtö
Sum is: 70>
Parametrien välittäminen funktioille
Toimintoa kutsuttaessa välitetyt tiedot tunnetaan todellisina parametreina. Alla olevassa ohjelmassa 10 ja 30 tunnetaan todellisina parametreina. Muodolliset parametrit ovat muuttuja ja tietotyyppi, jotka mainitaan funktion määrittelyssä. Alla olevassa ohjelmassa a ja b tunnetaan muodollisina parametreina.

Parametrien välittäminen funktioille
Voimme välittää argumentteja C-funktiolle kahdella tavalla:
- Ohita arvo
- Ohita viite
1. Ohita arvo
Parametrien välitys tässä menetelmässä kopioi arvot todellisista parametreista muodollisiksi funktioparametreiksi. Tämän seurauksena toimintojen sisällä tehdyt muutokset eivät heijastu soittajan parametreihin.
Esimerkki:
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;> }> |
>
>
saada taulukon pituus cLähtö
Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>
2. Ohita viite
Soittajan todelliset parametrit ja toiminnon todelliset parametrit viittaavat samoihin paikkoihin, joten toiminnon sisällä tehdyt muutokset näkyvät soittajan todellisissa parametreissa.
Esimerkki:
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;> }> |
>
>Lähtö
Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>
C:n funktioiden edut
C:n funktiot on erittäin hyödyllinen C:n ominaisuus, jolla on monia alla mainittuja etuja:
- Funktio voi vähentää samojen lauseiden toistumista ohjelmassa.
- Toiminto tekee koodista luettavan tarjoamalla ohjelmallemme modulaarisuuden.
- Ei ole kiinteää määrää kutsutoimintoja, joita voidaan kutsua niin monta kertaa kuin haluat.
- Toiminto pienentää ohjelman kokoa.
- Kun funktio on ilmoitettu, voit käyttää sitä ajattelematta funktion sisäistä toimintaa.
C:n toimintojen haitat
Seuraavat ovat C:n funktioiden suurimmat haitat:
- Ei voi palauttaa useita arvoja.
- Muisti- ja aikakustannukset pinon kehysten varaamisesta ja ohjelman ohjauksen siirtämisestä johtuen.
Johtopäätös
Tässä artikkelissa keskustelimme seuraavista toiminnon kohdista, kuten alla on mainittu:
jvm javassa
- Funktio on koodilohko, jota voidaan käyttää uudelleen niin monta kertaa kuin haluamme ohjelman sisällä.
- Funktiota varten meidän on kutsuttava funktiota.
- Funktiomääritys sisältää funktion_nimi, palautustyypin ja parametrit.
- Funktiomäärittely sisältää funktion rungon.
- Toiminto on kahden tyyppistä käyttäjän määrittämää toimintoa ja kirjastotoimintoa.
- Toiminnossa voimme kahden tyypin mukaan kutsua arvolla ja kutsua viittauksella välitettyjen arvojen mukaan.
Usein kysytyt kysymykset C:n toiminnoista
Q1. Määritä toiminnot.
Vastaus:
Funktiot ovat koodilohko, joka suoritetaan aina, kun niitä kutsutaan ohjelman suorituksen aikana.
Q2. Mikä on ennakkoilmoitus?
Vastaus:
Joskus määrittelemme funktion sen kutsun jälkeen tarjotaksemme paremman luettavuuden. Tällaisissa tapauksissa ilmoitamme funktion ennen niiden määritelmää ja kutsua. Tällaista ilmoitusta kutsutaan Forward Declarationiksi.
Q3. Mitä eroa on funktion määrittelyn ja funktion määrittelyn välillä?
Vastaus:
Tiedot, kuten funktion nimi, palautustyyppi ja parametri, sisältyvät funktion ilmoitukseen, kun taas määritelmä on funktion runko. Kaikki nämä tiedot jaetaan kääntäjän kanssa niitä vastaavien vaiheiden mukaisesti.
Q4. Mitä eroa on funktion argumenteilla ja parametreilla?
Vastaus:
Funktioparametrit ovat funktion määrittelyssä ilmoitettuja arvoja. Kun taas funktion argumentit ovat arvoja, jotka välitetään funktiossa funktiokutsun aikana.
Esimerkki:
int func(int x,int y); func(10,20);>Tässä int x ja int y ovat parametreja, kun taas 10 ja 20 ovat funktiolle välitettyjä argumentteja.
Saat lisätietoja tästä artikkelista – Argumenttien ja parametrien ero C:ssä.
Q5. Voimmeko palauttaa useita arvoja C-funktiosta?
Vastaus:
Ei, ei yleensä ole mahdollista palauttaa useita arvoja funktiosta. Mutta voimme käyttää kumpaa tahansa osoittimia staattisiin tai kasaan muistipaikkoihin palauttaaksemme useita arvoja tai voimme laittaa tietoja rakenne ja palauta sitten rakenne.
Saat lisätietoja tästä artikkelista – Kuinka palauttaa useita arvoja funktiosta C- tai C++-kielellä?
Q6. Mikä on todellinen ja muodollinen parametri?
Vastaus:
Muodollinen parametri: Funktioprototyypissä ilmoitettuja muuttujia kutsutaan muodollisiksi argumenteiksi tai parametreiksi.
Todellinen parametri: Funktiossa välitetyt arvot tunnetaan todellisina argumenteina tai parametreina.