Tilbakeringingsfunksjon i C

Tilbakeringingsfunksjon i C
En tilbakeringing på programmeringsspråket C er en hendelsesdrevet funksjon som gir en funksjon til en annen funksjon som et argument. Bare tilbakeringingsfunksjonen er når en referanse til en "funksjon 1" sendes som et argument for "Funksjon 2" ved hjelp av en funksjonspeker. Den funksjonen bruker den referansen til å ringe “Funksjon 1”. Denne artikkelen vil gi noen få illustrasjoner om bruken av en tilbakeringingsfunksjon på programmeringsspråket C

Syntaks

For å bruke tilbakeringingsfunksjon, må vi erklære og initialisere funksjonspekeren i hovedfunksjonen. Funksjonspekerdeklarasjon/initialisering Syntaks er definert her:

[Returntype-of-the-CallingFunction] (*[Pointer-Name]) ([CallingFunction's-Parameters]) = & [CallingFunction-Name];

Etter erklæring/initialisering av funksjonspekeren, vil vi gi pekeren til ønsket funksjon på følgende vedlagte måte:

[Ønsket funksjonsnavn] ([hvilken som helst-annet funksjon-parameter], pekernavn);

Funksjonsdefinisjon/initialiseringssignatur for funksjonen som mottar dette argumentet vil være slik:

[ReturnType] [Funksjonsnavn] ([annen-annet-funksjon-parameter], [Returntype-of-Calling-Function] (*[Pointer-Name]) ([Calling-Function's-Parameters])

Endelig vises den funksjonen ved hjelp av den passerte pekeren her:

[Pointer-Name] (det -funksjons-parametere);

Teorien kan være litt forvirrende. Implementering av eksemplene vil imidlertid hjelpe deg med å tømme disse forvirringene.

Eksempel 1:

I vårt første eksempel vil vi lage en enkel tilbakeringingsfunksjon. Det returnerer ingenting og tar ingen parametere. Å tømme våre nylente konsepter ved å implementere dem. Alt du trenger å gjøre er å lage en notisblokk og gi den en tittel du ønsker. Legg til .CPP -utvidelse brukt til C -programmeringsfiler.

Når dokumentet er opprettet, åpner du kommandolinjegrensesnittet og skriver følgende vedlagte spørring for å kompilere din C-språkkode ved hjelp av GCC-kompilatoren.

$ gcc -o [ditt filnavn] [ditt filnavn].CPP

Skriv nå til den påfølgende kommandoen for utførelse av kode.

$ [Ditt filnavn].EXE

La oss hoppe til hovedkoden. Vi har startet med å lage funksjonssignaturer øverst, da vi trenger å lage to funksjoner. Den ene vil være tilbakeringing og den andre hvis funksjonspeker blir sendt til tilbakeringingsfunksjonen.

I hovedfunksjonen vil vi erklære/initialisere funksjonspekeren vår. Mens funksjonsanrop, må vi passere pekeren som et argument. Hovedfunksjonskoden er presentert i skjermbildet under.

Nå, alt vi trenger å gjøre er å fylle ut vår tilbakeringing og den andre funksjonen. Identisk med veien i bildet presentert nedenfor. Tilknytningen og andre funksjonskoder presenteres i skjermbildet under.

Våre funksjoner utfører ikke noe sammensatt. For å få den grunnleggende ideen, vil vi skrive ut meldinger på konsollen. For å se hvordan tilbakeringingsfunksjonen fungerer. Utfør instruksjonen som presenteres i underbildet under.

Bedømme fra utdataene kan vi fortelle når vi funksjoner å ringe fra hoved. Det gikk til “Funksjon 1” og skrive ut meldingen på konsollen. Deretter bruker du funksjonspekeren, “Funksjon 2” får tilgang til når kodelinjene i “Funksjon 2” alle utføres. Kontrollen vil gå tilbake til “Funksjon 1”.

Eksempel 2:

I dette tilfellet vil vi implementere kalkulatorens enkle operasjoner (i.e., Legg til, trekk, multipliser og del) ved hjelp av C -språkets tilbakeringingsfunksjon. Vi starter med å legge til funksjonssignaturer av operasjoner og tilbakeringingsfunksjonen som ligner på eksempel 1.

Da vil vi erklære vårt heltall, drift og funksjonspekervariabelen.

Ta brukerinngang for heltall å operere, og be brukeren om å velge ønsket operasjon for å utføre på dem.

Ved å bruke ellers-hvis-tilstanden vil vi lage en brukervalgt operasjonsfunksjonspeker for å gi den inn i kalkulatorens tilbakeringingsfunksjon.

Det er alt for hovedfunksjonen, tid til å kode tilbakeringing og driftsfunksjoner. Alle operasjonsfunksjonene signaturer tar to argumenter og returnerer operasjonsresultatet som en utgang. I vår kalkulatorfunksjon vil vi skrive ut den returnerte verdien av operasjonen ved å kalle operasjonsfunksjonen ved hjelp av pekeren.

For alle driftsfunksjonene vil vi kode for å beregne og returnere resultatet av den operasjonen.

Endelig er det på tide å teste koden vår. Utfør instruksjonen som presenteres i underbildet under.

Som du ser fungerer programmet jevnt uten feil. La oss også prøve å teste andre operasjoner.

Som du ser, kjører programmet vårt logisk riktig for alle operasjoner. Når en bruker velger ønsket operasjon, er den spesielle "hvis" av deres operasjonsvalg valgt, og at operasjonsfunksjonspekeren sendes til kalkulatorfunksjonen. Bruke den pekerkalkulatorfunksjonen kaller den kjørbare koden til den valgte operasjonen, og som et resultat får tilbake det resulterende svaret.

Nå vil vi teste hvor godt programmet vårt reagerer når en bruker legger inn en ugyldig inngang for å velge en operasjon.

Som du kan se fra det vedlagte bildet presentert ovenfor, at programmet vårt fungerer jevnt.

Konklusjon:

La oss gjøre en rask oversikt vi dekket i denne opplæringen, er teorien om tilbakeringingsfunksjon, funksjonspeker, dens syntaks og implementerte få eksempler for å få en bedre forståelse. Jeg håper denne opplæringen hjalp deg med å fikse konseptene dine og fjerne alle spørsmålene dine angående tilbakeringingsfunksjoner på C -språket.