I c kan vi dele et stort program inn i de grunnleggende byggesteinene kjent som funksjon. Funksjonen inneholder settet med programmeringssetninger omsluttet av {}. En funksjon kan kalles flere ganger for å gi gjenbrukbarhet og modularitet til C-programmet. Med andre ord kan vi si at samlingen av funksjoner lager et program. Funksjonen er også kjent som fremgangsmåte eller subrutine på andre programmeringsspråk.
Fordel med funksjoner i C
Det er følgende fordeler med C-funksjoner.
- Ved å bruke funksjoner kan vi unngå å skrive om samme logikk/kode igjen og igjen i et program.
- Vi kan kalle C-funksjoner et hvilket som helst antall ganger i et program og fra hvilket som helst sted i et program.
- Vi kan enkelt spore et stort C-program når det er delt inn i flere funksjoner.
- Gjenbrukbarhet er hovedprestasjonen til C-funksjoner.
- Funksjonskall er imidlertid alltid en overhead i et C-program.
Funksjonsaspekter
Det er tre aspekter ved en C-funksjon.
SN | C-funksjonsaspekter | Syntaks |
---|---|---|
1 | Funksjonserklæring | returtype funksjonsnavn (argumentliste); |
2 | Funksjonsanrop | funksjonsnavn (argumentliste) |
3 | Funksjonsdefinisjon | return_type funksjonsnavn (argumentliste) {function body;} |
Syntaksen for å lage funksjon i c-språk er gitt nedenfor:
return_type function_name(data_type parameter...){ //code to be executed }
Typer funksjoner
Det er to typer funksjoner i C-programmering:
Returverdi
En C-funksjon kan returnere en verdi fra funksjonen eller ikke. Hvis du ikke trenger å returnere noen verdi fra funksjonen, bruk void for returtypen.
La oss se et enkelt eksempel på C-funksjon som ikke returnerer noen verdi fra funksjonen.
Eksempel uten returverdi:
void hello(){ printf('hello c'); }
Hvis du vil returnere en verdi fra funksjonen, må du bruke en hvilken som helst datatype som int, long, char osv. Returtypen avhenger av verdien som skal returneres fra funksjonen.
ms word hurtigtilgangsverktøylinje
La oss se et enkelt eksempel på C-funksjon som returnerer int-verdi fra funksjonen.
Eksempel med returverdi:
int get(){ return 10; }
I eksemplet ovenfor må vi returnere 10 som en verdi, så returtypen er int. Hvis du vil returnere flyttallverdi (f.eks. 10,2, 3,1, 54,5, osv.), må du bruke flytende som returtype for metoden.
float get(){ return 10.2; }
Nå må du kalle funksjonen for å få verdien av funksjonen.
Ulike aspekter ved funksjonsanrop
En funksjon kan godta ethvert argument eller ikke. Det kan eller ikke kan returnere noen verdi. Basert på disse fakta, er det fire forskjellige aspekter ved funksjonskall.
- funksjon uten argumenter og uten returverdi
- funksjon uten argumenter og med returverdi
- funksjon med argumenter og uten returverdi
- funksjon med argumenter og med returverdi
Eksempel på funksjon uten argument og returverdi
Eksempel 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Produksjon
centos vs rhel
Hello Javatpoint
Eksempel 2
#include void sum(); void main() { printf(' Going to calculate the sum of two numbers:'); sum(); } void sum() { int a,b; printf(' Enter two numbers'); scanf('%d %d',&a,&b); printf('The sum is %d',a+b); }
Produksjon
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Eksempel på funksjon uten argument og med returverdi
Eksempel 1
#include int sum(); void main() { int result; printf(' Going to calculate the sum of two numbers:'); result = sum(); printf('%d',result); } int sum() { int a,b; printf(' Enter two numbers'); scanf('%d %d',&a,&b); return a+b; }
Produksjon
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Eksempel 2: program for å beregne arealet av kvadratet
streng av lengde
#include int sum(); void main() { printf('Going to calculate the area of the square '); float area = square(); printf('The area of the square: %f ',area); } int square() { float side; printf('Enter the length of the side in meters: '); scanf('%f',&side); return side * side; }
Produksjon
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Eksempel på funksjon med argument og uten returverdi
Eksempel 1
#include void sum(int, int); void main() { int a,b,result; printf(' Going to calculate the sum of two numbers:'); printf(' Enter two numbers:'); scanf('%d %d',&a,&b); sum(a,b); } void sum(int a, int b) { printf(' The sum is %d',a+b); }
Produksjon
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Eksempel 2: program for å beregne gjennomsnittet av fem tall.
#include void average(int, int, int, int, int); void main() { int a,b,c,d,e; printf(' Going to calculate the average of five numbers:'); printf(' Enter five numbers:'); scanf('%d %d %d %d %d',&a,&b,&c,&d,&e); average(a,b,c,d,e); } void average(int a, int b, int c, int d, int e) { float avg; avg = (a+b+c+d+e)/5; printf('The average of given five numbers : %f',avg); }
Produksjon
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Eksempel på funksjon med argument og med returverdi
Eksempel 1
#include int sum(int, int); void main() { int a,b,result; printf(' Going to calculate the sum of two numbers:'); printf(' Enter two numbers:'); scanf('%d %d',&a,&b); result = sum(a,b); printf(' The sum is : %d',result); } int sum(int a, int b) { return a+b; }
Produksjon
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Eksempel 2: Program for å sjekke om et tall er partall eller oddetall
#include int even_odd(int); void main() { int n,flag=0; printf(' Going to check whether a number is even or odd'); printf(' Enter the number: '); scanf('%d',&n); flag = even_odd(n); if(flag == 0) { printf(' The number is odd'); } else { printf(' The number is even'); } } int even_odd(int n) { if(n%2 == 0) { return 1; } else { return 0; } }
Produksjon
Going to check whether a number is even or odd Enter the number: 100 The number is even
C Bibliotekfunksjoner
Bibliotekfunksjoner er den innebygde funksjonen i C som er gruppert og plassert på et felles sted kalt biblioteket. Slike funksjoner brukes til å utføre noen spesifikke operasjoner. For eksempel er printf en bibliotekfunksjon som brukes til å skrive ut på konsollen. Bibliotekfunksjonene er laget av designere av kompilatorer. Alle C standard bibliotekfunksjoner er definert i de forskjellige overskriftsfilene som er lagret med utvidelsen .h . Vi må inkludere disse overskriftsfilene i programmet vårt for å kunne bruke bibliotekfunksjonene som er definert i slike overskriftsfiler. For eksempel, For å bruke bibliotekfunksjonene som printf/scanf må vi inkludere stdio.h i programmet vårt som er en header-fil som inneholder alle bibliotekfunksjonene angående standard input/output.
Listen over mest brukte header-filer er gitt i følgende tabell.
SN | Overskriftsfil | Beskrivelse |
---|---|---|
1 | stio.h | Dette er en standard input/output header-fil. Den inneholder alle bibliotekfunksjonene angående standard input/output. |
2 | konium.h | Dette er en konsoll input/output header-fil. |
3 | streng.h | Den inneholder alle strengrelaterte bibliotekfunksjoner som gets(), puts(), etc. |
4 | stdlib.h | Denne overskriftsfilen inneholder alle de generelle bibliotekfunksjonene som malloc(), calloc(), exit(), etc. |
5 | matte.h | Denne overskriftsfilen inneholder alle matematiske operasjonsrelaterte funksjoner som sqrt(), pow(), etc. |
6 | tid.h | Denne overskriftsfilen inneholder alle tidsrelaterte funksjoner. |
7 | ctype.h | Denne overskriftsfilen inneholder alle tegnhåndteringsfunksjoner. |
8 | stdarg.h | Variable argumentfunksjoner er definert i denne overskriftsfilen. |
9 | signal.h | Alle signalhåndteringsfunksjonene er definert i denne overskriftsfilen. |
10 | setjmp.h | Denne filen inneholder alle hoppfunksjonene. |
elleve | locale.h | Denne filen inneholder lokale funksjoner. |
12 | errno.h | Denne filen inneholder feilhåndteringsfunksjoner. |
1. 3 | hevde.h | Denne filen inneholder diagnosefunksjoner. |
Ytterligere detaljer om C-funksjoner er gitt nedenfor:
Det er flere tilleggsopplysninger knyttet til C-funksjoner. Noen av dem er som følger:
Modulær programmering: Evnen til å dele opp en stort program inn i mindre, mer håndterbare moduler er en av hovedfordelene ved å bruke funksjoner i C. Hver funksjon kan inneholde en bestemt jobb eller funksjonskomponent, som effektiviserer og tydeliggjør den generelle programstrukturen. Denne modulære strategien forbedrer kodegjenbruk og gjør vedlikehold og feilsøking enklere.
understrek med css
Gjenbruk av kode: Ved å bruke funksjoner kan du lage en viss algoritme eller logikk bare én gang og bruke den gjentatte ganger gjennom hele programmet. Du kan bare ringe funksjonen når som helst du trenger å kjøre koden, slik at du slipper å duplisere den andre steder. Det ikke bare fremskynder utviklingen men sikrer også konsistens og reduserer muligheten for å gjøre feil.
Innkapsling og abstraksjon: Ved å skjule detaljene ved funksjonalitetens implementering, tilbyr funksjoner et abstraksjonsnivå. En funksjonsprototypes grensesnitt kan defineres i en header-fil , mens den faktiske implementeringen kan leveres i en annen kildefil. Andre deler av programmet kan bruke funksjonen uten å måtte forstå hvordan den implementeres internt på grunn av separasjonen mellom grensesnitt og implementering.
Enkelt programvedlikehold: Et program kan lettere forstås og vedlikeholdes hvis det er delt inn i mindre funksjoner. Muligheten til å tildele et spesifikt ansvar til hver funksjon gjør koden mer lesbar og gjør feilsøking og feilsøking enklere. Du kan konsentrere deg om den nødvendige funksjonen uten å påvirke andre deler av programmet hvis en feil blir funnet eller en modifikasjon er nødvendig.
Forbedret samarbeid: Funksjoner lar utviklere som jobber med det samme prosjektet samarbeide. Programmet kan deles inn i funksjoner slik at flere teammedlemmer kan jobbe videre ulike funksjoner med en gang. Utviklere kan enkelt integrere arbeidet sitt i funksjonene hvis grensesnittene er godt spesifisert, noe som forbedrer produktiviteten og fremmer effektiv utvikling.
Sender parameteren: Du kan sende argumenter eller data til en funksjon i C slik at den kan behandle dem. Funksjonen kan utføre handlinger og generere resultater ved hjelp av disse inngangene. Du kan øke fleksibiliteten og tilpasningsevnen til funksjoner ved å sende parametere, noe som vil øke programmets generelle allsidighet.
Returverdier: Funksjoner kan sende verdier tilbake til koden som kalte dem, noe som muliggjør kommunikasjon av funksjonens utførelsesresultater. Du kan bruke den returnerte verdien i andre områder av programmet etter å ha gjort beregninger eller datamanipulering i funksjonen. Returverdier er spesielt nyttige når du trenger å beregne et resultat eller etablere en betingelse avhengig av funksjonens utgang.
Konklusjon:
Avslutningsvis er funksjoner avgjørende for C-programmering fordi de gir program organisering, gjenbrukbarhet og modularitet . Utviklere kan unngå å lage den samme koden gjentatte ganger ved å dele opp store programmer i mindre funksjoner, noe som gjør koden mer effektiv og enklere å vedlikeholde. Hvor som helst i programmet kan kalle en funksjon, noe som gir fleksibilitet og forbedrer kontrollflyten.
De erklæring, ring , og definisjon funksjoner er bare noen få av deres mange egenskaper. Kompilatoren blir informert av funksjonserklæringen til navn, argumenter , og returtype . Det er mulig å kalle en funksjon med eller uten parametere og med eller uten a returverdi . Programmerere konstruerer brukerdefinerte funksjoner for å forbedre lesbarheten og optimaliseringen av koden deres, mens C-biblioteksfunksjoner som printf() og scanf() gi forhåndsinnstilte muligheter.
Samlet sett er funksjoner avgjørende byggesteiner i C-programmering, og gir fordeler inkludert økt organisering, gjenbruk av kode og enkel sporing av enorme programmer. Funksjonsanrop kan legge til litt overhead, men fordelene deres oppveier det minimale ytelsestreffet. Programmerere kan skrive effektive og modulære C-programmer ved å forstå og bruke funksjoner.