Alt du trenger å vite om funksjoner i C?



Denne artikkelen vil introdusere deg for et enkelt, men veldig grunnleggende og viktig konsept som er Funksjoner i C, og følge det opp med en demonstrasjon.

Denne artikkelen vil introdusere deg for en enkel, men veldig grunnleggende og viktig konsept som er Funksjoner i C og følg det opp med en demonstrasjon. Følgende tips vil bli dekket i denne artikkelen,

Funksjoner er byggesteiner for ethvert programmeringsspråk. I enkle ord fungerer du i et sett med utsagn, som tar innganger, utfører en bestemt oppgave og deretter returnerer utdataene.
Ideologien bak å skape funksjon er å binde et sett relatert utsagn sammen som utfører en bestemt oppgave. Slik at du ikke trenger å skrive den samme koden flere ganger for forskjellige sett med innganger. Du må bare ringe funksjonen for forskjellige innganger, den vil utføre den angitte oppgaven for den gitte inngangen og returnere utgangen. Du kan ringe funksjonen så mange ganger du vil. I denne bloggen vil vi lære hver nyanse om funksjoner i C-programmeringsspråk.





La oss starte med det mest grunnleggende spørsmålet.

Hva er funksjoner i C?

Funksjonene er de samme i C som andre programmeringsspråk. Det er et sett med koder som binder seg sammen for å utføre en bestemt oppgave. Kodesettet som skal utføres er spesifisert i krøllete bukseseler, dvs. '{}'.



Før vi lærer hvordan vi skriver en funksjon i C, la oss først forstå fordelene.

Fordeler med funksjoner i C

Fordelene med funksjoner er vanlige på tvers av alle programmeringsspråkene.
Hovedideen bak funksjonen er å redusere redundansen i koden. Anta at du har en funksjonalitet som må utføres flere ganger i et program, så i stedet for å skrive den flere ganger, kan du opprette en funksjon for den oppgaven og ringe den så mange ganger du vil. En annen skjult fordel er at hvis logikken til funksjonaliteten din endres etterpå, trenger du ikke å fortsette og endre den flere steder. Du må bare endre koden ett sted (dvs. i funksjonen), og den vil gjenspeiles i hele programmet.

Modularitet igjen en ekstra fordel. Å skrive et stort stykke kode inkludert hvert og alt, reduserer lesbarheten til koden og gjør det vanskelig å administrere. Du kan dele koden i seksjoner for individuelle funksjoner ved hjelp av funksjoner, som er enklere å forstå og lettere å administrere.



Funksjon gir også abstraksjon, der vi kan ringe en funksjon og få utdata uten å vite den interne implementeringen.

hva brukes marionett til

Fortsetter med typer funksjon C

Funksjonstyper i C

Det er to typer funksjoner:
Biblioteksfunksjoner
Brukerdefinerte funksjoner

Biblioteksfunksjoner er de funksjonene som allerede er definert i C-biblioteket, for eksempel strcat (), printf (), scanf () osv. Du trenger bare å inkludere passende headerfiler for å bruke disse funksjonene.
Brukerdefinerte funksjoner er de funksjonene som er definert av brukeren. Disse funksjonene er laget for gjenbrukbar kode og for å spare tid og plass.

Nå som vi vet fordelene ved å lage en funksjon, kan vi forstå hvordan vi kan erklære en funksjon i C.

Funksjonserklæring og definisjon

Funksjonserklæring:

Syntaks for funksjonserklæring:

return_type function_name (data_type arg1, data_type arg2) int add (int x, int y) // funksjonserklæring

I Funksjonserklæring spesifiserer vi navnet på funksjonen, antall inngangsparametere, deres datatyper og returtypen til funksjonen. Funksjonserklæring forteller kompilatoren om listen over argumenter funksjonen forventer med datatypene og returtypen til funksjonen.

I funksjonserklæring er det valgfritt å spesifisere navnene på parameteren, men å spesifisere datatypene er obligatorisk.

int add (int, int) // funksjonserklæring

Ovennevnte funksjon vil ta to heltallsparametere.

Funksjonsdefinisjon

 Bildefunksjoner i C- Edureka
int add (int, int) // funksjonserklæring return_type function_name (parameters) {Funksjonsdel}

Som vist i bildet ovenfor består en funksjonsdefinisjon av to deler, dvs. funksjonsoverskrift og funksjonsdel

Funksjonstittel: funksjonshode er det samme som funksjonserklæring uten semikolon. Funksjonstittel inneholder funksjonsnavn, parameter og returtype.

  • Returtype: Returtype er datatypen for verdien som funksjonen returnerer. Funksjonen kan returnere en verdi eller ikke. Hvis den gjør det, bør datatypen for omstillingsverdien spesifiseres, ellers må returtypen være ugyldig.

  • Funksjonsnavn: Dette er navnet på funksjonen som vi kan kalle funksjonen til når og når det er nødvendig.

  • Parametere: Parametrene er inngangsverdiene som vil bli overført til funksjonen. Den forteller om datatypene til argumentene, deres rekkefølge og antall argumenter som vil bli sendt til funksjonen. Parametrene er valgfrie. Du kan også ha funksjoner uten parametere.

Funksjon kropp: Funksjonsorganet er settet med utsagn som utfører en bestemt oppgave. Den definerer hva funksjonen gjør.

Eksempel:

int legg til (int x, int y) {int sum = x + y return (sum)}

Det anbefales å erklære en funksjon før vi definerer og bruker den. I C kan vi erklære og definere funksjonen på samme sted.

Eksempel:

#include int add (int, int) // funksjonserklæring // funksjonsdefinisjon int add (int x, int y) // funksjonshode {// funksjonsdel int sum = x + y return (sum)} // Hovedfunksjon int main () {int sum = add (23, 31) printf ('% d', sum) return 0}

Som vi kan se i eksemplet ovenfor at vi kaller funksjonen ved hjelp av int sum = add (23, 31) uttalelse. Den returnerte verdien fra funksjonen er lagret i sumvariabelen.

Før vi går videre, er det et viktig begrep å forstå om paramentet. Det er to typer parametere:

Faktisk parameter : Parametrene som overføres til funksjoner mens du ringer til dem, er kjent som faktisk parameter. For eksempel er 23 og 31 i eksemplet ovenfor de faktiske parametrene.

Formell parameter : Parametrene som mottas av funksjonene er kjent som formelle parametere. For eksempel er x & y i eksemplet ovenfor de formelle parametrene.

La oss raskt gå videre og forstå de forskjellige måtene å kalle en funksjon i C.

Ringe til en funksjon

Det er to måter vi kan kalle en funksjon på:

  • Ring etter verdi
  • Ring ved referanse

Ring etter verdi

I metoden for anrop etter verdi overføres verdien til den faktiske parameteren som et argument til funksjonen. Verdien til den faktiske parameteren kan ikke endres av de formelle parametrene.

I call be value-metoden tildeles annen minneadresse til formelle og faktiske parametere. Bare verdien av den faktiske parameteren kopieres til den formelle parameteren.

Eksempel:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nInside Function, Number is% d', num1)} int main () {int num num = 24 printf ('nFore Function, Number is% d', num ) Call_By_Value (num) printf ('nFunksjon er tallet% dn', num) return 0}

Produksjon

I eksemplet ovenfor, før anrop etter verdifunksjon, er verdien på num 24. Så snart vi kaller funksjonen og gir verdien, og endrer den inne i funksjonen, blir den 42. Når vi kommer tilbake og skriver ut verdien igjen av num i hovedfunksjon, blir den 24.

Ring ved referanse

I samtale med referanse overføres minneadressen til den faktiske parameteren til funksjonen som argument. Her kan verdien til den faktiske parameteren endres av den formelle parameteren.

Samme minneadresse brukes til både den faktiske og formelle parameteren. Så hvis verdien av den formelle parameteren endres, gjenspeiles den også av den faktiske parameteren.

I C bruker vi pekere for å implementere samtale med referanse. Som du kan se i eksemplet nedenfor, forventer funksjonen Call_By_Reference en peker til et helt tall.

sette opp hadoop på ubuntu

Nå vil denne num1-variabelen lagre minneadressen til den faktiske parameteren. Så for å skrive ut verdien som er lagret i minneadressen pekt av num1, må vi bruke dereference-operatør, dvs. *. Verdien av * num1 er altså 42.

Adresseoperatøren & brukes til å få adressen til en variabel av hvilken som helst datatype. Så i funksjonssamtalen 'Call_By_Reference (& num)', sendes adressen til num slik at num kan endres ved hjelp av adressen.

Eksempel

#include // funksjonsdefinisjon ugyldig Call_By_Reference (int * num1) {* num1 = 42 printf ('nInside Function, Number is% d', * num1)} // Hovedfunksjon int main () {int num num = 24 printf ( 'nFor funksjon, nummer er% d', num) Call_By_Reference (& num) printf ('nEtter funksjon er tallet% dn', num) return 0}

Produksjon

I dette eksemplet er verdien av num først 24, inne i hovedfunksjonen. Når den er sendt til funksjonen Call_By_Reference og verdien er endret av den formelle parameteren, ble den også endret for den faktiske parameteren. Dette er grunnen til at når vi skriver ut verdien av num etter funksjonen, skriver den ut 42.

Fortsetter med typer brukerdefinert funksjon i C

Typer brukerdefinerte Funksjon i C

Det finnes forskjellige typer brukerdefinerte funksjoner basert på returtype og argumenter som er sendt.

Fortsetter uten argumenter bestått og ingen returverdi

1.Ingen argumenter bestått og ingen returverdi

Syntaks:

funksjonserklæring:

ugyldig funksjon () funksjonsanrop: funksjon () funksjonsdefinisjon: ugyldig funksjon () {utsagn}

Eksempel

hvordan lage en haug i java
#include void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('sum% d', sum)} int main () {add () return 0}

Fortsetter uten argumenter, men en returverdi

2 Ingen argumenter bestått, men en returverdi

Syntaks:

funksjonserklæring:

int-funksjon () funksjonsanrop: funksjon () funksjonsdefinisjon: int-funksjon () {setninger returnerer}

Eksempel:

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

Videre med argumenter bestått, men ingen returverdi

3 Argument bestått, men ingen returverdi

Syntaks:

funksjonserklæring:

ugyldig funksjon (int) funksjonsanrop: funksjon (a) funksjonsdefinisjon: ugyldig funksjon (int a) {utsagn}

Eksempel:

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

Å gå videre med argument bestått og en returverdi

4 Argument bestått og returverdi

Syntaks:

funksjonserklæring:

int-funksjon (int) funksjonsanrop: funksjon (a) funksjonsdefinisjon: int-funksjon (int a) {setninger returnerer}

Eksempel

#include int add (int, int) int add (int x, int y) {int sum = x + y return (sum)} int main () {int sum = add (23, 31) printf ('% d' , sum) return 0}

La oss raskt se på C-biblioteksfunksjonene som er viktige for å skrive et program.

C Biblioteksfunksjoner

Biblioteksfunksjoner er funksjoner i C som er forhåndsdefinerte og er til stede som standard. Du må bare inkludere den spesifikke headerfilen i programmet, og du kan bruke funksjonene som er definert i den headerfilen. Hver topptekstfil gir spesifikk type funksjonalitet. Utvidelsen av toppfilen er .h.

For eksempel, for å bruke printf / scanf-funksjonene må vi inkludere stdio.h i programmet vårt, som gir funksjonalitet angående standard input / output.

Følgende er listen over headerfiler.

enstdio.hStandard inn / ut topptekstfil
2preging.hKonsollinngang / utgangs headerfil
3streng.hStrengerelaterte biblioteksfunksjoner som gets (), puts () osv.
4stdlib.hGenerelle biblioteksfunksjoner som malloc (), calloc (), exit () osv.
5matematikk.hMatematiske operasjonsrelaterte funksjoner som sqrt (), pow () osv.
6tid.hTidsrelaterte funksjoner
7ctype.hKarakterhåndteringsfunksjoner
8stdarg.hVariable argumentfunksjoner
9signal.hSignalhåndteringsfunksjoner
10setjmp.hHoppfunksjoner
ellevelocale.hLokale funksjoner
12errno.hFeilhåndteringsfunksjoner
1. 3hevder.hDiagnostikkfunksjoner

Nå etter å ha gått gjennom de ovennevnte C-funksjonene, ville du ha forstått hver eneste nyanse i funksjonen og hvordan du implementerer den på C-språk. Jeg håper denne bloggen er informativ og gir merverdi for deg.

Dermed har vi kommet til en slutt på denne artikkelen om ‘Funksjoner i C’. Hvis du ønsker å lære mer, sjekk ut , et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplærings- og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.