Hvordan fungerer funksjonspekere i C -programmering

Hvordan fungerer funksjonspekere i C -programmering

Funksjonspekere, Ofte referert til som "tilbakeringingsfunksjoner", er et viktig trekk ved C -programmeringsspråket. I hovedsak, funksjonspekere er en form for variabel som lagrer en referanse til en funksjon. Ved å bruke funksjonspekere, C -kodere kan lage kraftige programmer som kan utføre visse funksjoner avhengig av visse forhold.

Hvordan funksjonspekere i C fungerer

Å forstå hvordan funksjonspekere arbeid, det er viktig å forstå funksjoner og pekere i C. En funksjon, som de fleste C -kodere vil være kjent med, er et stykke kode som utfører en bestemt oppgave. Det tar vanligvis noen inngangsverdier og returnerer en utgangsverdi. Derimot er en peker en variabel som har en posisjon i datamaskinens minne. Pekere lar kodere få tilgang til og manipulere en variabel i minnet.

EN Funksjonspeker fungerer ved å kombinere disse to konseptene i det vesentlige sammen. Den holder adressen til en funksjon i stedet for plasseringen av en variabel. Dette betyr at pekeren, når det er referert til, vil utføre koden til den refererte funksjonen og vil returnere resultatet.

Andre pekere peker på data, mens en funksjonspeker lenker til kode. En funksjonspeker inneholder vanligvis den første linjen med kjørbar kode. Vi bruker ikke funksjonspekere å tildele eller forhandle minne, i motsetning til konvensjonelle pekere. Navnet på en funksjon kan også brukes til å få sin beliggenhet.

Som konvensjonelle datapunkter, a Funksjonspeker kan sendes som et argument og kan også returneres fra en funksjon.

Her er en eksempelkode hvordan kan du bruke funksjonspekere:

#inkludere
void func (int x)

printf ("Verdien på x = %d \ n", x);

int main ()

void (*func_ptr) (int) = &func;
(*func_ptr) (32);
retur 0;

I denne koden definerer vi først en funksjon av navnet func () Og i hovedfunksjonen () bruker vi funksjonspekeren for å få tilgang til den funksjonen og skrive ut verdien.

Produksjon

Funksjonspekere muliggjøre et fleksibilitetsnivå i C som ikke ville være mulig uten dem. Tenk deg for eksempel et program som viser gjeldende tid på skjermen. For å gjøre dette, må det ringe flere forskjellige funksjoner for å konvertere hver enhet av tiden (timer, minutter og sekunder) til deres tilsvarende desimalekvivalent.

Ettersom denne informasjonen kan endre seg relativt ofte, vil det være bortkastet datamaskinressurser for å holde alle disse funksjonene som forhåndsdefinerte funksjoner i koden. I stedet kunne programmereren opprette en enkelt "oppdateringstid" -funksjon som ganske enkelt kaller hver konverteringsfunksjon (som vil bli lagret som funksjonspekervariabler). På denne måten kalles oppdateringstidsfunksjonen bare når tiden må oppdateres, noe som gjør den generelle koden mer effektiv.

Siste tanker

Funksjonspekere Tilby en enorm mengde fleksibilitet og kontroll til C -kodere, slik at de kan lage kraftig og effektiv kode. Ved å forstå hvordan de fungerer, kan kodere benytte seg av denne funksjonen til sin fulle kapasitet og skape robuste og effektive programmer. Ved å bestå pekere i stedet for individuelle funksjoner, kan C -kodere lage nyttige biblioteker med gjenbrukbar kode, noe som gjør utviklingen enklere og raskere. Funksjonspeker Variabler kan også brukes til å passere tilbakeringingsfunksjoner som argumenter og kan også unngå overflødighet.