Johdatus C-funktioihin

Johdatus C-funktioihin
Kaltaisesi lukijat auttavat tukemaan MUO:ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Olet ehkä käsitellyt C-perussyntaksia yksinkertaisilla esimerkeillä ja mietit nyt, kuinka voit luoda suurempia, todellisia ohjelmia. Aluksi sinun kannattaa järjestää koodisi tehokkaiksi osiin mahdollisimman vähäisellä toistolla. C:ssä, kuten useimmissa kielissä, vastaus ongelmiisi on funktio.





MUO päivän video JATKA SISÄLLÖLLÄ VIERÄTÄ

Toimintojen luominen ja käyttäminen C:ssä on yksinkertaista ja tuo monia etuja. Toimintojen avulla voit jakaa monimutkaiset ohjelmat pienempiin osiin. Ne tarjoavat uudelleenkäytettävyyden sekä alkuperäisessä ohjelmassasi että siihen liittyvissä kirjastoissa tai muissa erillisissä ohjelmissa.





Aloitaksesi sinun on opittava funktion määrittelyistä, prototyypeistä, parametreista ja paluulausekkeista.





Mitä funktiot ovat C:ssä?

  Näyttö, joka näyttää koodin ohjelmointikielellä

C-ohjelmoinnissa , funktio on nimetty koodin osa, joka tekee jotain, kun sitä pyydetään. Se auttaa pitämään koodisi järjestyksessä ja antaa sinun käyttää samaa toimintoa useita kertoja toistamatta itseäsi.

Yksinkertaisin esimerkki on jo käyttämäsi esimerkki: main()-funktio. Päätoiminto on erityisen erityinen, koska se toimii minkä tahansa C-ohjelman pääsisääntulopisteenä. Voit myös käyttää kirjastofunktioita, jotka ovat jonkun muun jo kirjoittamia, tai voit kirjoittaa omia käyttäjän määrittämiä funktioita.



Toiminnot: ilmoittaminen, määrittely ja kutsuminen

Nämä kolme näkökohtaa ovat olennaisia ​​funktioiden käytössä.

Toimintoilmoitus

Tämä antaa tietoja funktion nimestä, palautustyypistä ja parametreista, mikä mahdollistaa sen käytön ennen sen täydellistä määrittelyä. Sitä kutsutaan myös funktion prototyypiksi. Se noudattaa tätä yksinkertaista syntaksia:





 return_type function_name(parameters);

Missä:

  • palautustyyppi on funktion palauttaman arvon tietotyyppi. Se voi olla mikä tahansa kelvollinen C-tietotyyppi tai mitätön jos funktio ei palauta arvoa.
  • funktion_nimi on nimi, jonka annat funktiolle. Käytä tätä funktion kutsumiseen myöhemmin.
  • parametrit on luettelo syöteparametreista, jotka funktio hyväksyy, jos sellaisia ​​on. Jokainen parametri koostuu tietotyypistä, jota seuraa pilkuilla erotettu parametrin nimi.

Esimerkiksi tässä on yksinkertainen funktion ilmoitus:





 int add(int a, int b);

Toiminnon määritelmä

Kun kutsut funktiota, se suorittaa määrittelyssään määritellyn koodin. Se sisältää funktion nimen, palautustyypin, parametriluettelon ja lausekkeet, jotka määrittävät sen toiminnan. Tässä on syntaksi:

kuinka parantaa videon laatua
 return_type function_name(parameters) { 
    // Function body - code that defines what the function does
    // Return a value if applicable
    return value;
}

Puretaan syntaksin osia:

Toimintorunko : Tämä on koodilohko, joka on suljettu aaltosulkeisiin {} . Se sisältää ohjeet, jotka määrittelevät, mitä funktio tekee, kun sitä kutsutaan.

Palautusilmoitus : Jos funktiolla on muu palautustyyppi kuin mitätön , palata lauseke lähettää arvon takaisin soittajalle. Tämän arvon tulee vastata määritettyä palautustyyppiä.

Tässä on yksinkertainen esimerkki funktion määritelmästä:

 int add(int a, int b) { 
    int sum = a + b;
    return sum;
}

Toimintokutsu

Aivan kuten ruoanlaitossa, sinulla voi olla resepti (funktion määritelmä) ja joitain ainesosia (argumentteja), mutta sinun on silti noudatettava ohjeita saadaksesi tuloksen. Funktiokutsu suorittaa funktion annetuilla argumenteilla; tässä syntaksi:

 return_type result = function_name(arguments);

argumentteja : Nämä ovat arvoja tai lausekkeita, jotka välität funktiolle syötteinä. Erottele jokainen argumentti pilkulla. Argumenttien lukumäärän, järjestyksen ja tietotyyppien tulee vastata funktion parametriluetteloa.

tulos : Jos funktiolla on muu palautustyyppi kuin mitätön , voit siepata palautetun arvon käyttämällä sopivaa tietotyyppiä olevaa muuttujaa.

Tässä on esimerkki funktiokutsusta:

 #include <stdio.h> 

// Function prototype
int add(int a, int b);

int main() {
    int x = 5, y = 3;

    // Call the function and store the result in 'sum'
    int sum = add(x, y);
    printf("The sum of %d and %d is %d\n", x, y, sum);
    return 0;
}

// Function definition
int add(int a, int b) {
    return a + b;
}

Noudattamalla näitä kolmea vaihetta – funktion ilmoittaminen, sen toteutus ja kutsuminen asianmukaisilla argumenteilla – voit käyttää funktioita tehokkaasti erilaisten tehtävien suorittamiseen ohjelmassasi.

Toimintoparametrit ja palautusarvot

Parametrit ovat funktion ilmoituksessa tai määrittelyssä ilmoitettuja muuttujia, jotka toimivat funktiolle kutsuttaessa välitettävien arvojen paikkamerkkeinä. Niiden avulla voit siirtää tietoja toimintoon, jolloin se voi työskennellä tietojen kanssa ja käsitellä niitä. Paluuarvot ovat arvoja, jotka funktio tuottaa ja lähettää takaisin soittajalle.

Parametrien välittämiseen on kaksi tapaa.

Ohita arvo

Tällä lähestymistavalla funktiokutsu kopioi todellisen argumentin arvon funktion parametriin. Funktiossa parametriin tehdyt muutokset eivät vaikuta alkuperäiseen argumenttiin.

Esimerkiksi:

 #include <stdio.h> 

int square(int num) {
    num = num * num;
    return num;
}

int main() {
    int x = 5;
    int y = square(x);

    // Output: x and y after function call: 5 25
    printf("x and y after function call: %d %d\n", x, y);

    return 0;
}
  • Neliöfunktio ottaa kokonaislukuparametrin, yhdellä .
  • Neliöfunktio laskee numeron neliön, päivittää sen arvon ja palauttaa tämän uuden arvon.
  • Pääfunktio ilmoittaa kokonaislukumuuttujan, x , ja antaa sille arvon 5.
  • Sitten se kutsuu neliöfunktiota ja välittää sille x:n arvon. Se määrittää tuloksen toiselle muuttujalle, ja .
  • Funktion kutsun jälkeen main tulostaa x:n ja y:n arvot. X-arvo pysyy samana, koska num-parametrin muuttaminen neliön sisällä ei vaikuta alkuperäiseen x:ään.

Ohita viite

Tätä lähestymistapaa käyttämällä välität arvon muistiosoitteen (osoittimen) funktiolle. Parametriin tehdyt muutokset funktion sisällä vaikuttavat alkuperäiseen arvoon sen ulkopuolella.

miksi kannettava tietokone ylikuumenee jatkuvasti?

Osoittimet, mukaan lukien niiden käyttö parametreina, ovat yksi näkökohdista C, jotka tekevät siitä erilaisen kuin Pythonin kaltainen kieli .

 #include <stdio.h> 

void square(int *num) {
    *num = *num * *num;
}

int main() {
    int x = 5;
    square(&x);

    // Output: x after function call: 25
    printf("x after function call: %d\n", x);
    return 0;
}
  • The neliö funktio ottaa kokonaisluvun osoittimen ( int * ) parametri, yhdellä . Se ei palauta arvoa.
  • Neliöfunktio laskee arvon neliön yhdellä sisältää ja päivittää tämän arvon käyttämällä osoittimen viittausoperaattoria, * .
  • The pää funktio ilmoittaa kokonaislukumuuttujan, x , ja antaa sille arvon 5 .
  • Sitten se kutsuu neliö toiminto osoittimella x käyttämällä operaattorin osoitetta: &x .
  • Funktion kutsun jälkeen main tulostaa arvon x , joka on nyt 25 muutoksista lähtien *yhdellä sisällä neliö toiminto vaikuttaa alkuperäiseen x .

Yhteenvetona voidaan todeta, että avainero näiden kahden menetelmän välillä on se, kuinka funktion sisällä olevan parametrin muutokset vaikuttavat alkuperäiseen arvoon sen ulkopuolella. Ohitusarvo luo kopion, kun taas ohitus (osoitin) mahdollistaa alkuperäisen arvon suoran manipuloinnin.