logo

C funksjoner

EN funksjon i C er et sett med utsagn som når de kalles utfører en bestemt oppgave. Det er den grunnleggende byggesteinen i et C-program som gir modularitet og gjenbrukbarhet av kode. Programmeringssetningene til en funksjon er vedlagt { } klammeparenteser , har visse betydninger og utfører visse operasjoner. De kalles også subrutiner eller prosedyrer på andre språk.

I denne artikkelen vil vi lære om funksjoner, funksjonsdefinisjon. erklæring, argumenter og parametere, returverdier og mange flere.

Syntaks av funksjoner i C

Syntaksen for funksjon kan deles inn i 3 aspekter:



    Funksjonserklæring Funksjonsdefinisjon Funksjonsanrop

Funksjonserklæringer

I en funksjonsdeklarasjon må vi oppgi funksjonsnavnet, dens returtype og antallet og typen av parameterne. En funksjonserklæring forteller kompilatoren at det er en funksjon med det gitte navnet definert et annet sted i programmet.

Syntaks

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

Parameternavnet er ikke obligatorisk når funksjoner deklareres. Vi kan også deklarere funksjonen uten å bruke navnet på datavariablene.

Eksempel

int sum (int a , int b ); int sum (int , int);>
Funksjonserklæring

Funksjonserklæring

Merk: En funksjon i C må alltid deklareres globalt før den kalles.

Funksjonsdefinisjon

Funksjonsdefinisjonen består av faktiske setninger som utføres når funksjonen kalles opp (dvs. når programkontrollen kommer til funksjonen).

En C-funksjon er generelt definert og erklært i et enkelt trinn fordi funksjonsdefinisjonen alltid starter med funksjonserklæringen, så vi trenger ikke å deklarere den eksplisitt. Eksempelet nedenfor fungerer både som en funksjonsdefinisjon og en erklæring.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Funksjonsdefinisjon i C

Funksjonsdefinisjon i C

Funksjonsanrop

Et funksjonskall er en setning som instruerer kompilatoren til å utføre funksjonen. Vi bruker funksjonsnavnet og parameterne i funksjonskallet.

I eksemplet nedenfor kalles den første sumfunksjonen og 10,30 sendes til sumfunksjonen. Etter funksjonskallet returneres summen av a og b og kontrollen returneres også tilbake til hovedfunksjonen til programmet.

Arbeid av funksjon i C

Arbeid av funksjon i C

Merk: Funksjonskall er nødvendig for å bringe programkontrollen til funksjonsdefinisjonen. Hvis den ikke kalles opp, vil ikke funksjonssetningene bli utført.

Eksempel på C-funksjon

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;> }>

>

ms word hurtigtilgangsverktøylinje
>

Produksjon

Sum is: 40>

Som vi la merke til, har vi ikke brukt eksplisitt funksjonsdeklarasjon. Vi definerte og kalte funksjonen ganske enkelt.

Funksjon Returtype

Funksjonsreturtype forteller hvilken type verdi som returneres etter at alle funksjoner er utført. Når vi ikke vil returnere en verdi, kan vi bruke datatypen void.

Eksempel:

int func(parameter_1,parameter_2);>

Funksjonen ovenfor vil returnere en heltallsverdi etter å ha kjørt setninger inne i funksjonen.

Merk: Bare én verdi kan returneres fra en C-funksjon. For å returnere flere verdier, må vi bruke pekere eller strukturer.

Funksjonsargumenter

Funksjonsargumenter (også kjent som funksjonsparametere) er dataene som sendes til en funksjon.

Eksempel:

centos vs rhel
int function_name(int var1, int var2);>

Vilkår for returtyper og argumenter

I programmeringsspråket C kan funksjoner kalles enten med eller uten argumenter og kan returnere verdier. De returnerer kanskje ikke verdier til de anropende funksjonene.

  1. Funksjon uten argumenter og ingen returverdi
  2. Funksjon uten argumenter og med returverdi
  3. Funksjon med argument og uten returverdi
  4. Funksjon med argumenter og med returverdi

For å vite mer om funksjonsargumenter og returverdier, se artikkelen – Funksjonsargumenter og returverdier i C .

Hvordan fungerer C-funksjonen?

Arbeidet med C-funksjonen kan deles inn i følgende trinn som nevnt nedenfor:

    Erklære en funksjon: Å erklære en funksjon er et trinn der vi erklærer en funksjon. Her definerer vi returtypene og parameterne til funksjonen.
  1. Definere en funksjon:
  2. Å kalle funksjonen: Å kalle funksjonen er et trinn der vi kaller funksjonen ved å sende argumentene i funksjonen. Utførelse av funksjonen: Utførelse av funksjonen er et trinn der vi kan kjøre alle setningene inne i funksjonen for å få det endelige resultatet. Returnere en verdi: Å returnere en verdi er trinnet der den beregnede verdien etter utførelse av funksjonen returneres. Å avslutte funksjonen er det siste trinnet hvor alt tildelt minne til variablene, funksjonene osv. blir ødelagt før det gis full kontroll til hovedfunksjonen.

Typer funksjoner

Det er to typer funksjoner i C:

    Bibliotekfunksjoner Brukerdefinerte funksjoner
Typer funksjoner

Typer funksjoner i C

1. Bibliotekfunksjon

En bibliotekfunksjon blir også referert til som en innebygd funksjon . Det finnes allerede en kompilatorpakke som inneholder disse funksjonene, som hver har en spesifikk betydning og er inkludert i pakken. Innebygde funksjoner har fordelen av å være direkte brukbare uten å være definert, mens brukerdefinerte funksjoner må deklareres og defineres før de brukes.

For eksempel:

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

Fordeler med C-biblioteksfunksjoner

  • C Library-funksjonene er enkle å bruke og optimalisert for bedre ytelse.
  • C-biblioteksfunksjoner sparer mye tid, dvs. funksjonsutviklingstid.
  • C-biblioteksfunksjoner er praktiske da de alltid fungerer.

Eksempel:

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;> }>

>

>

Produksjon

The Square root of 49.00 = 7.00>

2. Brukerdefinert funksjon

Funksjoner som programmereren lager er kjent som brukerdefinerte funksjoner eller skreddersydde funksjoner . Brukerdefinerte funksjoner kan forbedres og modifiseres i henhold til programmererens behov. Når vi skriver en funksjon som er saksspesifikk og ikke er definert i noen overskriftsfil, må vi deklarere og definere våre egne funksjoner i henhold til syntaksen.

Fordeler med brukerdefinerte funksjoner

  • Utskiftbare funksjoner kan endres etter behov.
  • Koden til disse funksjonene kan gjenbrukes i andre programmer.
  • Disse funksjonene er enkle å forstå, feilsøke og vedlikeholde.

Eksempel:

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;> }>

>

>

Produksjon

Sum is: 70>

Overføring av parametere til funksjoner

Dataene som sendes når funksjonen startes, kalles faktiske parametere. I programmet nedenfor er 10 og 30 kjent som faktiske parametere. Formelle parametere er variabelen og datatypen som nevnt i funksjonsdeklarasjonen. I programmet nedenfor er a og b kjent som formelle parametere.

Overføring av parametere til funksjoner

Overføring av parametere til funksjoner

Vi kan sende argumenter til C-funksjonen på to måter:

  1. Gå forbi verdi
  2. Gå forbi referanse

1. Pass av verdi

Parameteroverføring i denne metoden kopierer verdier fra faktiske parametere til formelle funksjonsparametere. Som et resultat vil eventuelle endringer som er gjort inne i funksjonene ikke reflekteres i innringerens parametere.

Eksempel:

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;> }>

>

>

streng av lengde
Produksjon

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

2. Pass ved referanse

Anroperens faktiske parametere og funksjonens faktiske parametere refererer til de samme stedene, så eventuelle endringer som gjøres inne i funksjonen, gjenspeiles i innringerens faktiske parametere.

Eksempel:

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;> }>

>

>

Produksjon

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

Fordeler med funksjoner i C

Funksjoner i C er en svært nyttig funksjon i C med mange fordeler som nevnt nedenfor:

  1. Funksjonen kan redusere gjentakelsen av de samme utsagnene i programmet.
  2. Funksjonen gjør koden lesbar ved å tilby modularitet til programmet vårt.
  3. Det er ikke noe fast antall ringefunksjoner det kan ringes så mange ganger du vil.
  4. Funksjonen reduserer størrelsen på programmet.
  5. Når funksjonen er deklarert, kan du bare bruke den uten å tenke på den interne funksjonen til funksjonen.

Ulemper med funksjoner i C

Følgende er de største ulempene med funksjoner i C:

  1. Kan ikke returnere flere verdier.
  2. Minne- og tidsoverhead på grunn av stackrammetildeling og overføring av programkontroll.

Konklusjon

I denne artikkelen diskuterte vi følgende punkter om funksjonen som nevnt nedenfor:

understrek med css
  1. Funksjonen er kodeblokken som kan gjenbrukes så mange ganger vi vil inne i et program.
  2. For å bruke en funksjon må vi kalle en funksjon.
  3. Funksjonserklæring inkluderer funksjonsnavn, returtype og parametere.
  4. Funksjonsdefinisjon inkluderer kroppen til funksjonen.
  5. Funksjonen er av to typer brukerdefinert funksjon og bibliotekfunksjon.
  6. I funksjon kan vi i henhold til to typer kalle etter verdi og kalle etter referanse i henhold til verdiene som er bestått.

Vanlige spørsmål om funksjoner i C

Q1. Definer funksjoner.

Svar:

Funksjoner er kodeblokken som utføres hver gang de kalles opp under kjøring av et program.

Q2. Hva er en videresendingserklæring?

Svar:

Noen ganger definerer vi funksjonen etter kallet for å gi bedre letthet. I slike tilfeller erklærer vi funksjon før deres definisjon og kall. Slik erklæring kalles Forward Declaration.

Q3. Hva er forskjellen mellom funksjonserklæring og definisjon?

Svar:

Dataene som funksjonsnavn, returtype og parameteren er inkludert i funksjonsdeklarasjonen, mens definisjonen er funksjonens kropp. Alle disse dataene deles med kompilatoren i henhold til deres tilsvarende trinn.

Q4. Hva er forskjellen mellom funksjonsargumenter og parametere?

Svar:

Funksjonsparametere er verdiene som er deklarert i en funksjonserklæring. Mens funksjonsargumenter er verdiene som sendes i funksjonen under funksjonskallet.

Eksempel:

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

Her er int x og int y parametere mens 10 og 20 er argumentene som sendes til funksjonen.

For å vite mer om det, se denne artikkelen – Difference between Arguments and Parameters in C .

Q5. Kan vi returnere flere verdier fra en C-funksjon?

Svar:

Nei, det er vanligvis ikke mulig å returnere flere verdier fra en funksjon. Men vi kan enten bruke pekere til statiske eller heap minneplasseringer for å returnere flere verdier, eller vi kan legge inn data i struktur og returner deretter strukturen.

For å vite mer om det, se denne artikkelen - Hvordan returnere flere verdier fra en funksjon i C eller C++?

Q6. Hva er den faktiske og formelle parameteren?

Svar:

Formell parameter: Variablene som er deklarert i funksjonsprototypen er kjent som formelle argumenter eller parametere.

Faktisk parameter: Verdiene som sendes i funksjonen er kjent som faktiske argumenter eller parametere.