logo

Brukerdefinert funksjon i C

EN brukerdefinert funksjon er en type funksjon i C-språk som er definert av brukeren selv for å utføre en bestemt oppgave. Det gir kodegjenbrukbarhet og modularitet til programmet vårt. Brukerdefinerte funksjoner er forskjellig fra innebygde funksjoner ettersom deres virkemåte er spesifisert av brukeren og ingen overskriftsfil er nødvendig for bruken.

I denne artikkelen vil vi lære om brukerdefinert funksjon, funksjonsprototype, funksjonsdefinisjon, funksjonskall og ulike måter vi kan sende parametere til en funksjon på.



mission umulig alle filmer

Hvordan bruke brukerdefinerte funksjoner i C?

For å bruke en brukerdefinert funksjon, må vi først forstå de forskjellige delene av dens syntaks. Den brukerdefinerte funksjonen i C kan deles inn i tre deler:

  1. Funksjon Prototype
  2. Funksjonsdefinisjon
  3. Funksjonsanrop

C Funksjon Prototype

En funksjonsprototype er også kjent som en funksjonserklæring som spesifiserer funksjonens navn, funksjonsparametere, og returtype . Funksjonsprototypen inneholder ikke hoveddelen av funksjonen. Den brukes i utgangspunktet til å informere kompilatoren om eksistensen av den brukerdefinerte funksjonen som kan brukes i den senere delen av programmet.

Syntaks

return_type function_name  (type1 arg1 , type2 arg2 , ... typeN argN );>

Vi kan også hoppe over navnet på argumentene i funksjonsprototypen. Så,



return_type function_name  (type1 , type2 , ... typeN);>
Funksjon Prototype

C Funksjonsdefinisjon

Når funksjonen er kalt, inneholder funksjonsdefinisjonen de faktiske setningene som vil bli utført. Alle setningene i funksjonsdefinisjonen er innesluttet { } tannregulering.

Syntaks

return_type function_name (type1 arg1 , type2 arg2 .... typeN argN ) { // actual statements to be executed  // return value if any }>

Merk: Hvis funksjonskallet er tilstede etter funksjonsdefinisjonen, kan vi hoppe over funksjonsprototypedelen og definere funksjonen direkte.

C funksjonsanrop

For å overføre kontroll til en brukerdefinert funksjon, må vi kalle den. Funksjoner kalles ved å bruke navn etterfulgt av runde parenteser. Argumentene deres sendes innenfor parentes.



Syntaks

function_name(arg1, arg2, ... argN);>

Eksempel på brukerdefinert funksjon

Følgende C-program illustrerer hvordan du bruker brukerdefinerte funksjoner i programmet vårt.

C




// C Program to illustrate the use of user-defined function> #include> // Function prototype> int> sum(>int>,>int>);> // Function definition> int> sum(>int> x,>int> y)> {> >int> sum;> >sum = x + y;> >return> x + y;> }> // Driver code> int> main()> {> >int> x = 10, y = 11;> >// Function call> >int> result = sum(x, y);> >printf>(>'Sum of %d and %d = %d '>, x, y, result);> >return> 0;> }>

>

>

gjeldende dato i java
Produksjon

Sum of 10 and 11 = 21>

Komponenter av funksjonsdefinisjon

Det er tre komponenter i funksjonsdefinisjonen:

  1. Funksjonsparametere
  2. Funksjon Body
  3. Returverdi

1. Funksjonsparametre

Funksjonsparametere (også kjent som argumenter) er verdiene som sendes til den kalte funksjonen av den som ringer. Vi kan sende ingen eller et hvilket som helst antall funksjonsparametere til funksjonen.

Vi må definere funksjonsnavnet og dets type i funksjonsdefinisjonen, og vi kan bare sende samme antall og type parametere i funksjonskallet.

Eksempel

int foo ( int a, int b) ;>

Her, en og b er funksjonsparametere.

Merk: C-språket gir en metode der vi kan sende variabelt antall argumenter til funksjonen. Slike funksjoner kalles variadisk funksjon .

2. Funksjon Body

Funksjonskroppen er settet med setninger som er omsluttet av { } klammeparenteser. De er setningene som utføres når funksjonen kalles.

Eksempel

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

Her er uttalelsene mellom { og } er funksjonskropp.

3. Returverdi

Returverdien er verdien som returneres av funksjonen til den som ringer. En funksjon kan bare returnere en enkelt verdi, og den er valgfri. Hvis ingen verdi skal returneres, er returtypen definert som ugyldig.

De returner søkeord brukes til å returnere verdien fra en funksjon.

Syntaks

 return ( expression );>

Eksempel

 int  foo (int a, int b) { return a + b; }>

Merk: Vi kan bruke pekere eller strukturer for å returnere flere verdier fra en funksjon i C .

Overføring av parametere til brukerdefinerte funksjoner

Vi kan sende parametere til en funksjon i C ved å bruke to metoder:

  1. Ring etter verdi
  2. Ring etter referanse

1. Ring etter verdi

I call by value sendes en kopi av verdien til funksjonen og endringer som er gjort i funksjonen reflekteres ikke tilbake til verdiene. Faktiske og formelle argumenter lages på forskjellige minneplasseringer.

Eksempel

C




// C program to show use of> // call by value> #include> void> swap(>int> a,>int> b)> {> >int> temp = a;> >a = b;> >b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d '>, x,> >y);> >swap(x, y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }>

>

latex tekststørrelse
>

Produksjon

Values of x and y before swap are: 10, 20 Values of x and y after swap are: 10, 20>

Merk: Verdier endres ikke i anropet etter verdi siden de ikke sendes via referanse.

2. Ring etter referanse

I en call by Reference blir adressen til argumentet sendt til funksjonen, og endringer som er gjort i funksjonen reflekteres tilbake til verdiene. Vi bruker pekere av ønsket type for å motta adressen i funksjonen.

Eksempel

C


java programmer



// C program to implement> // Call by Reference> #include> void> swap(>int>* a,>int>* b)> {> >int> temp = *a;> >*a = *b;> >*b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d '>, x,> >y);> >swap(&x, &y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }>

>

>

Produksjon

Values of x and y before swap are: 10, 20 Values of x and y after swap are: 20, 10>

For mer informasjon, se denne artikkelen – Forskjellen mellom Call by Value og Call by Reference

Fordeler med brukerdefinerte funksjoner

Fordelene ved å bruke funksjoner i programmet er som følger:

  • Man kan unngå duplisering av kode i programmene ved å bruke funksjoner. Kode kan skrives raskere og bli mer lesbar som et resultat.
  • Kode kan deles og erobres ved hjelp av funksjoner. Denne prosessen er kjent som Divide and Conquer. Det er vanskelig å skrive store mengder kode innenfor hovedfunksjonen, samt testing og feilsøking. Vår ene oppgave kan deles inn i flere mindre deloppgaver ved å bruke funksjoner, og dermed redusere den totale kompleksiteten.
  • For eksempel når man bruker pow, sqrt osv. i C uten å vite hvordan det er implementert, kan man skjule implementeringsdetaljer med funksjoner.
  • Med små eller ingen modifikasjoner kan funksjoner utviklet i ett program brukes i et annet, noe som reduserer utviklingstiden.