Funksjonsoverbelastning i C

Funksjonsoverbelastning i C
Overbelastning av funksjoner er et veldig kjent konsept som brukes i objektorienterte språk med mange funksjoner med samme navn og forskjellige parametere i en enkelt kode. De objektorienterte programmeringsspråkene som støtter funksjonsoverbelastning inkluderer Java og C++. Siden C -kompilatoren ikke tillater den å brukes i koden, er det ikke lett å implementere funksjonsoverbelastning i C. Ennå; Vi kan fremdeles oppnå det samme med en viss teknikk. La oss starte denne artikkelen med åpningen av Shell Terminal of Ubuntu 20.04 LTS.

Forutsetninger

  • Installer Ubuntu 20.04 LTS
  • Installer GCC -kompilator
  • Få tilgang til sudo rettigheter

Eksempel 01: Funksjonsoverbelastning i C

La oss starte vårt første eksempel for å se hvordan funksjonsoverbelastning ganske enkelt mislykkes på C -språket. Vi må bruke "berøringsinstruksjonen i terminalskallet for å lage et nytt dokument av C-type. For å åpne denne nye filen, trenger du en filredigerer. Vi har brukt “GNU Nano” -redaktøren for å åpne den.

Utfør følgende pålagte instruksjoner for å komme i gang.

$ berøringstest.c
$ nano test.c

Etter å ha lansert filen i en redaktør, har vi inkludert som vi har definert to brukerdefinerte standardinngangs-output-overskrifter. Etter overskriften har vi definert to brukerdefinerte metoder med et lignende navn og forskjellige parametere, i.e., “Cal”. Den første brukerdefinerte metoden, “Cal” tar 1 argument av heltallstype, mens den andre “Cal” -metoden tar to argumenter av heltallstype. Den første funksjonen har ganske enkelt vært å multiplisere den passerte heltallverdien med seg selv og lagre den til en annen heltallstypevariabel, “T” som nettopp har blitt initialisert.

Etter dette vil den beregnede verdien vises i skallet via "printf" -uttalelsen som ble brukt i den. Den andre funksjonen tar to heltallverdier i sitt argument og bruker de passerte verdiene for å beregne totalen ved å multiplisere begge deler. De beregnede verdiene vil bli skrevet ut i skallet i henhold til "printf" -uttalelsen.

Innenfor hovedmetoden () har vi kalt begge metodene etter hverandre. Den første metoden har blitt kalt mens du har en parametrisk heltallverdi i den. Den andre samme navnefunksjonen har blitt kalt mens du har passert to heltallstypeverdier i parametrene. Hovedmetoden blir stengt her.

Lagre denne koden og avslutte filen. Bruk “GCC” -kompilatorpakken for å kompilere koden og se funksjonen overbelastning av feil. Kommandoen er gitt i bildeutgangen nedenfor. Du kan se at sammenstilling av denne filen kaster mange unntak på grunn av samme navn på funksjoner.

Utfør følgende pålagt instruksjon.

$ GCC -test.c

Eksempel 02: Alternativ til funksjon overbelastning

Innenfor dette eksemplet vil vi fortelle deg om den alternative metoden for å implementere funksjonsoverbelastning. Vi har åpnet den samme filen en gang til og lagt til tre overskriftspakker øverst i den med #include nøkkelord. Vi har definert to brukerdefinerte funksjoner med samme navn med en enkelt karakterendring i dem. Begge funksjonsnavnene starter med “Cal”.

Den første metoden har tatt to heltallsverdier som et argument i sine parametere. Mens den andre har tatt to karaktertypepekere som et argument i sine parametere. Den første "Cal" -metoden har tatt disse to heltallverdiene og legger dem sammen. De beregnede verdiene vil bli returnert til hovedmetoden. På den annen side initialiserte den andre “Cal” -metoden en annen karaktertypepeker, “Z”.

Strlen () -metoden brukes på begge strengvariablene for å få lengder, og Malloc () -metoden er blitt brukt på lengde for å få minnestørrelse. Pekeren “Z” har fått minne via Malloc () -metoden, da den må lagre strengverdien. StrcPy () -metoden brukes til å kopiere strengverdien til pekervariabelen “X” til “Z”. Mens STRCAT () -metoden brukes til å legge til verdien til pekervariabelen “Y” på slutten av “Z”. Den oppdaterte verdien av “Z” er returnert til Main () -metoden. Vi har definert funksjonserklæringen med det "_generiske" nøkkelordet.

Main () -metoden er å erklære to heltallvariabler som skal sendes til den første “Cal ()” -metoden. To karakterpekere er blitt initialisert med strengverdier og ført til den andre “Cal ()” -metoden.

Kompilerte koden med “GCC” -pakken. Etter utførelsen av denne koden fikk vi summen av to heltall og den sammenkoblede strengen.

Utfør følgende pålagte instruksjoner for å komme i gang.

$ GCC NY.c
$ ./en.ute

Konklusjon:

Denne guiden inneholder illustrasjonen av å bruke en alternativ metode for funksjon overbelastning i C. Vi har dekket eksemplet for å se hvordan funksjonsoverbelastning mislykkes i C og hvordan _generisk betegnelse kan redde oss. Hvis du har gått nøye gjennom denne guiden, vil du kunne utføre funksjonsoverbelastning i C lett fra nå av. Vi håper at du kan finne denne artikkelen best.