Kaikki mitä sinun tarvitsee tietää C-toiminnoista?



Tämä artikkeli esittelee yksinkertaisen mutta hyvin perustavanlaatuisen ja tärkeän käsitteen, joka on Funktiot C: ssä, ja seuraa sitä esittelyllä.

Tämä artikkeli esittelee sinulle yksinkertaisen mutta hyvin perustavanlaatuisen ja tärkeän käsite, joka on Funktiot C: ssä, ja seuraa sitä esittelyllä. Seuraavat vihjeet käsitellään tässä artikkelissa,

Toiminnot ovat minkä tahansa ohjelmointikielen rakennuspalikoita. Funktio yksinkertaisilla sanoilla lausejoukossa, joka ottaa syötteet, suorittaa tietyn tehtävän ja palauttaa sitten tuotoksen.
Funktion luomisen taustalla oleva ideologia on sitoa joukko toisiinsa liittyviä lausuntoja, jotka suorittavat tietyn tehtävän. Joten sinun ei tarvitse kirjoittaa samaa koodia useita kertoja eri syötesarjoille. Sinun tarvitsee vain kutsua toiminto eri tuloille, se suorittaa määritetyn tehtävän annetulle tulolle ja palauttaa lähdön. Voit kutsua toimintoa niin monta kertaa kuin haluat. Tässä blogissa opitaan jokainen vivahde C-ohjelmointikielen toiminnoista.





Aloitetaan peruskysymyksestä.

Mitä ovat toiminnot C: ssä?

Toiminnot ovat samat C-muodossa kuin muutkin ohjelmointikielet. Se on joukko koodeja, jotka on sidottu yhteen tietyn tehtävän suorittamiseksi. Suoritettava koodisarja määritetään kiharilla aaltosulkeilla, ts. ”{}”.



Ennen kuin opimme kirjoittamaan funktion C: ssä, ymmärretään ensin, mitkä ovat sen edut.

Toimintojen edut C.

Toimintojen edut ovat yhteisiä kaikilla ohjelmointikielillä.
Toiminnan pääidea on vähentää redundanssia koodissa. Oletetaan, että sinulla on toiminto, joka on suoritettava useita kertoja ohjelmassa, joten sen sijaan, että kirjoitat sen useita kertoja, voit luoda toiminnon tälle tehtävälle ja kutsua sitä niin monta kertaa kuin haluat. Toinen piilotettu etu on, että jos toimintojesi logiikka muuttuu myöhemmin, sinun ei tarvitse mennä eteenpäin ja muuttaa sitä useissa paikoissa. Sinun tarvitsee vain muuttaa koodi yhdessä paikassa (eli toiminnossa) ja se heijastuu koko ohjelmassa.

Modulaarisuus on jälleen lisäetu. Ison koodinpalan kirjoittaminen, joka sisältää kaikki & kaikki, vähentää koodin luettavuutta ja vaikeuttaa hallintaa. Voit jakaa koodin osiin yksittäisille toiminnoille funktioiden avulla, mikä on yksinkertaisempi ymmärtää ja helpompi hallita.



Funktio tarjoaa myös abstraktion, jossa voimme kutsua funktion ja saada tuotoksen tuntematta sisäistä toteutusta.

Siirtyminen toiminnon C tyyppien kanssa

Toimintatyypit C: ssä

Toimintoja on kahdenlaisia:
Kirjastotoiminnot
Käyttäjän määrittelemät toiminnot

Kirjastotoiminnot ovat niitä toimintoja, jotka on jo määritelty C-kirjastossa, kuten strcat (), printf (), scanf () jne. Sinun tarvitsee vain sisällyttää asianmukaiset otsikkotiedostot näiden toimintojen käyttämiseen.
Käyttäjän määrittelemät toiminnot ovat käyttäjän määrittelemiä toimintoja. Nämä toiminnot on tehty koodin uudelleenkäytettäväksi sekä ajan ja tilan säästämiseksi.

Nyt kun tiedämme funktion luomisen edut, ymmärretään, miten funktio ilmoitetaan C: ssä.

Toimintoilmoitus ja määritelmä

Toimintoilmoitus:

Toimintoilmoituksen syntaksi:

return_type-funktion_nimi (data_type arg1, data_type arg2) int add (int x, int y) // funktion ilmoitus

Toimintoilmoituksessa määritämme funktion nimen, syöteparametrin määrän, niiden tietotyypit ja funktion palautustyypin. Funktion ilmoitus kertoo kääntäjälle luettelon argumenteista, joita funktio odottaa, tietotyypeineen ja funktion palautustyypillä.

Funktion ilmoituksessa parametrin nimien määrittäminen on valinnaista, mutta niiden tietotyyppien määrittäminen on pakollista.

c ++ goto-etiketti
int lisää (int, int) // funktion ilmoitus

Edellä mainittu funktio vie kaksi kokonaislukuparametriä.

Toiminnon määritelmä

 Kuva- toiminnot C- Edurekassa
int lisää (int, int) // toimintoilmoitus return_type funktion_nimi (parametrit) {Funktion runko}

Kuten yllä olevassa kuvassa on esitetty, funktion määritelmä koostuu kahdesta osasta, eli funktion otsikosta ja funktion rungosta

Toiminnon otsikko: funktion otsikko on sama kuin funktion ilmoitus ilman puolipistettä. Funktion otsikko sisältää funktion nimen, parametrin ja palautustyypin.

  • Palautustyyppi: Palautustyyppi on arvon arvo, jonka funktio palauttaa. Toiminto voi palauttaa arvon tai olla palauttamatta sitä. Jos näin tapahtuu, uudelleenviritysarvon tietotyyppi tulisi määrittää, muuten palautustyyppi on mitätöitävä.

  • Toiminnon nimi: Tämä on funktion nimi, jolla voimme kutsua funktiota milloin ja missä sitä tarvitaan.

  • Parametrit: Parametrit ovat tuloarvoja, jotka välitetään funktiolle. Se kertoo argumenttien tietotyypeistä, niiden järjestyksestä ja funktiolle välitettävien argumenttien lukumäärästä. Parametrit ovat valinnaisia. Voit myös käyttää toimintoja ilman parametreja.

Toimintakappale: Funktion runko on joukko lauseita, jotka suorittavat tietyn tehtävän. Se määrittelee toiminnon.

Esimerkki:

int lisää (int x, int y) {int summa = x + y tuotto (summa)}

On suositeltavaa ilmoittaa funktio ennen kuin määritämme ja käytämme sitä. C: ssä voimme julistaa ja määritellä funktion samassa paikassa.

Esimerkki:

#include int add (int, int) // funktion selitys // funktion määritelmä int add (int x, int y) // funktion otsikko {// funktion runko int summa = x + y return (summa)} // Pääfunktio int main () {int summa = lisää (23, 31) printf ('% d', summa) tuotto 0}

Kuten yllä olevasta esimerkistä voidaan nähdä, kutsumme funktiota int sum = add (23, 31) -lausekkeella. Funktion palauttama arvo tallennetaan summa-muuttujaan.

Ennen kuin siirrymme eteenpäin, on vielä yksi tärkeä käsite, joka on ymmärrettävä paramentista. Parametreja on kahden tyyppisiä:

Todellinen parametri : Ne parametrit, jotka välitetään funktioille niitä kutsuttaessa, tunnetaan todellisina parametreina. Esimerkiksi yllä olevassa esimerkissä 23 ja 31 ovat todelliset parametrit.

Virallinen parametri : Ne parametrit, jotka toiminnot vastaanottavat, tunnetaan muodollisina parametreina. Esimerkiksi yllä olevassa esimerkissä x & y ovat muodollisia parametreja.

Mennään nopeasti eteenpäin ja ymmärretään eri tapoja kutsua funktio C: ssä.

Funktion kutsuminen

Funktiota voidaan kutsua kahdella tavalla:

  • Soita arvon mukaan
  • Soita viitteenä

Soita arvon mukaan

Kutsu arvo -menetelmässä todellisen parametrin arvo välitetään argumenttina funktiolle. Muodolliset parametrit eivät voi muuttaa todellisen parametrin arvoa.

c ++ lajittelutoiminto

Call be value -menetelmässä eri muistiosoite varataan muodollisille ja todellisille parametreille. Vain todellisen parametrin arvo kopioidaan muodolliseen parametriin.

Esimerkki:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nSisäinen toiminto, numero on% d', num1)} int main () {int numero num = 24 printf ('nEnnen funktiota, numero on% d', num ) Call_By_Value (num) printf ('nFunction-toiminnon jälkeen numero on% dn', num) return 0}

Tuotos

Yllä olevassa esimerkissä numeron arvo on 24. Ennen kuin kutsu arvo -toiminnolle kutsutaan arvoa 24. Sitten, kun kutsumme funktion ja välitämme arvon ja muutamme sen funktion sisällä, siitä tulee 42. Kun palaamme takaisin ja tulostamme arvon uudelleen lukumäärä päätoiminnossa on 24.

Soita viitteenä

Viitteessä soitettaessa todellisen parametrin muistiosoite välitetään funktiolle argumenttina. Tässä todellisen parametrin arvoa voidaan muuttaa muodollisella parametrilla.

Samaa muistiosoitetta käytetään sekä varsinaiselle että muodolliselle parametrille. Joten jos muodollisen parametrin arvoa muutetaan, se näkyy myös todellisessa parametrissa.

C: ssä käytämme osoittimia puhelun viitteenä toteuttamiseen. Kuten alla olevasta esimerkistä näet, funktio Call_By_Reference odottaa osoittinta kokonaislukuun.

Nyt tämä muuttuja num1 tallentaa todellisen parametrin muistiosoitteen. Joten numeron1 osoittamaan muistiosoitteeseen tallennetun arvon tulostamiseksi meidän on käytettävä poikkeamaoperaattoria eli *. Joten * num1: n arvo on 42.

Osoiteoperaattoria & käytetään minkä tahansa tietotyypin muuttujan osoitteen saamiseen. Joten funktion kutsulausekkeessa ”Call_By_Reference (& num)” numeron osoite välitetään, jotta numeroa voidaan muokata sen osoitteen avulla.

Esimerkki

#include // funktion määritelmä void Call_By_Reference (int * num1) {* num1 = 42 printf ('nSisäinen toiminto, numero on% d', * num1)} // Päätoiminnon int main () {int numero num = 24 printf ( 'nEnnen funktiota, numero on% d', num) Call_By_Reference (& num) printf ('n Funktion jälkeen numero on% dn', num) palauttaa 0}

Tuotos

Tässä esimerkissä num-arvo on aluksi 24, päätoiminnon sisällä. Kun se on siirretty Call_By_Reference-funktiolle ja arvoa on muokattu muodollisella parametrilla, se muuttui myös todelliselle parametrille. Siksi, kun tulostamme funktion jälkeen num-arvon, se tulostaa 42.

Siirtyminen käyttäjän määrittelemien toimintojen tyyppeihin C: ssä

Käyttäjän määrittelemät tyypit Toiminto julkaisussa C

On olemassa erilaisia ​​käyttäjän määrittelemiä toimintoja palautustyypin ja välitettyjen argumenttien perusteella.

Siirtyminen eteenpäin ilman argumentteja ja palautusarvoa

1. argumentteja ei lähetetty eikä palautusarvoa

Syntaksi:

toimintoilmoitus:

void function () funktion kutsu: function () funktion määrittely: void function () {lauseet}

Esimerkki

lajittelualgoritmilla voidaan järjestää joukko ________ ________ järjestyksessä.
#include void add () void add () {int x = 20 int y = 30 int summa = x + y printf ('summa% d', summa)} int main () {add () return 0}

Siirtyminen eteenpäin ilman argumentteja välitetty, mutta palautusarvo

2 Ei argumentteja annettu, mutta palautusarvo

Syntaksi:

toimintoilmoitus:

int function () funktion kutsu: function () funktion määrittely: int function () {lauseet palauttavat}

Esimerkki:

#include int add () int add () {int x = 20 int y = 30 int summa = x + y return (summa)} int main () {int summa summa = add () printf ('summa% d', summa) tuotto 0}

Siirtyminen eteenpäin argumenttien läpäisemisellä, mutta ei palautusarvoa

3 Argumentti hyväksytty, mutta ei palautusarvoa

Syntaksi:

toimintoilmoitus:

void function (int) funktion kutsu: function (a) funktion määritelmä: void function (int a) {lauseet}

Esimerkki:

#include void add (int, int) void add (int x, int y) {int summa = x + y return (summa)} int main () {add (23, 31) return 0}

Siirtyminen Argumentin läpäisyllä ja palautusarvolla

4 Hyväksytty argumentti ja palautusarvo

Syntaksi:

toimintoilmoitus:

int funktio (int) funktion kutsu: funktio (a) funktion määrittely: int funktio (int a) {lauseet palauttavat a}

Esimerkki

#include int add (int, int) int add (int x, int y) {int summa = x + y tuotto (summa)} int main () {int summa = lisää (23, 31) printf ('% d' , summa) tuotto 0}

Katsokaamme nyt nopeasti C-kirjaston toimintoja, jotka ovat tärkeitä ohjelman kirjoittamiseksi.

C Kirjastotoiminnot

Kirjastotoiminnot ovat C: n toimintoja, jotka on määritetty ennalta ja ovat oletusarvoisesti läsnä. Sinun tarvitsee vain sisällyttää tietty otsikkotiedosto ohjelmaan ja voit käyttää kyseisessä otsikkotiedostossa määriteltyjä toimintoja. Jokainen otsikkotiedosto tarjoaa tietyntyyppisiä toimintoja. Otsikkotiedoston laajennus on .h.

Esimerkiksi printf / scanf-toimintojen käyttämiseksi meidän on sisällytettävä ohjelmaamme stdio.h, jotka tarjoavat toimintoja vakiotuloon / -lähtöön liittyen.

Seuraavassa on luettelo otsikkotiedostoista.

yksistdio.hVakiotulo / lähtöotsikkotiedosto
2rahapaja. hKonsolin tulo- / lähtöotsikkotiedosto
3merkkijono. hMerkkijonoon liittyvät kirjastotoiminnot, kuten get (), put () jne.
4stdlib.hKirjaston yleiset toiminnot, kuten malloc (), calloc (), exit () jne.
5matematiikkaMatemaattisiin operaatioihin liittyvät toiminnot, kuten sqrt (), pow () jne.
6aika. hAikaan liittyvät toiminnot
7ctype.hMerkkien käsittelytoiminnot
8stdarg.hMuuttujan argumenttitoiminnot
9signaali. hSignaalinkäsittelytoiminnot
10setjmp.hHyppytoiminnot
yksitoistalocale.hLocale-toiminnot
12errno.hVirheiden käsittelytoiminnot
13väittää. hDiagnostiikkatoiminnot

Nyt kun olet käynyt läpi yllä olevat C-toiminnot, olisit ymmärtänyt jokaisen funktion jokaisen vivahteen ja kuinka se toteutetaan C-kielellä. Toivon, että tämä blogi on informatiivinen ja lisäarvoa sinulle.

Siksi olemme päässeet tämän artikkelin 'Funktiot C: hen' loppuun. Jos haluat oppia lisää, tutustu , luotettava verkko-oppimisyritys. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.