In c kunnen we een groot programma opdelen in de basisbouwstenen die bekend staan als functie. De functie bevat de set programmeerinstructies omsloten door {}. Een functie kan meerdere keren worden aangeroepen om herbruikbaarheid en modulariteit aan het C-programma te bieden. Met andere woorden, we kunnen zeggen dat de verzameling functies een programma creëert. De functie wordt ook wel genoemd procedure of subroutine in andere programmeertalen.
Voordeel van functies in C
Er zijn de volgende voordelen van C-functies.
- Door functies te gebruiken, kunnen we voorkomen dat dezelfde logica/code steeds opnieuw in een programma wordt herschreven.
- We kunnen C-functies een onbeperkt aantal keren in een programma en vanaf elke plek in een programma aanroepen.
- We kunnen een groot C-programma gemakkelijk volgen als het in meerdere functies is verdeeld.
- Herbruikbaarheid is de belangrijkste prestatie van C-functies.
- Functieaanroepen zijn echter altijd overhead in een C-programma.
Functieaspecten
Er zijn drie aspecten van een C-functie.
SN | C-functieaspecten | Syntaxis |
---|---|---|
1 | Functieverklaring | return_type functie_naam (argumentenlijst); |
2 | Functie oproep | functie_naam (argumentenlijst) |
3 | Functiedefinitie | return_type functie_naam (argumentenlijst) {function body;} |
De syntaxis voor het maken van een functie in de c-taal wordt hieronder gegeven:
return_type function_name(data_type parameter...){ //code to be executed }
Soorten functies
Er zijn twee soorten functies bij het programmeren in C:
Winstwaarde
Een C-functie kan wel of niet een waarde uit de functie retourneren. Als u geen waarde uit de functie hoeft terug te geven, gebruikt u void als retourtype.
Laten we een eenvoudig voorbeeld bekijken van de C-functie die geen enkele waarde uit de functie retourneert.
Voorbeeld zonder retourwaarde:
void hello(){ printf('hello c'); }
Als u een waarde uit de functie wilt retourneren, moet u elk gegevenstype gebruiken, zoals int, long, char, enz. Het retourneringstype hangt af van de waarde die uit de functie moet worden geretourneerd.
wat is een stapel in Java
Laten we een eenvoudig voorbeeld bekijken van de C-functie die de int-waarde van de functie retourneert.
Voorbeeld met retourwaarde:
int get(){ return 10; }
In het bovenstaande voorbeeld moeten we 10 als waarde retourneren, dus het retourtype is int. Als u een drijvende-kommawaarde wilt retourneren (bijvoorbeeld 10,2, 3,1, 54,5, enz.), moet u float gebruiken als het retourtype van de methode.
float get(){ return 10.2; }
Nu moet u de functie aanroepen om de waarde van de functie te verkrijgen.
Verschillende aspecten van functieaanroepen
Een functie kan wel of geen enkel argument accepteren. Het kan wel of geen waarde opleveren. Op basis van deze feiten zijn er vier verschillende aspecten van functieaanroepen.
- functie zonder argumenten en zonder retourwaarde
- functie zonder argumenten en met retourwaarde
- functie met argumenten en zonder retourwaarde
- functie met argumenten en met retourwaarde
Voorbeeld voor functie zonder argument en retourwaarde
voorbeeld 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Uitvoer
Hello Javatpoint
Voorbeeld 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); }
Uitvoer
vervolgkeuzelijst JavaScript
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Voorbeeld voor functie zonder argument en met retourwaarde
voorbeeld 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; }
Uitvoer
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Voorbeeld 2: programma om de oppervlakte van het vierkant te berekenen
pvr volledige vorm
#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; }
Uitvoer
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Voorbeeld voor functie met argument en zonder retourwaarde
voorbeeld 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); }
Uitvoer
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Voorbeeld 2: programma om het gemiddelde van vijf getallen te berekenen.
#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); }
Uitvoer
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Voorbeeld voor functie met argument en met retourwaarde
voorbeeld 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; }
Uitvoer
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Voorbeeld 2: Programma om te controleren of een getal even of oneven is
#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; } }
Uitvoer
Going to check whether a number is even or odd Enter the number: 100 The number is even
C Bibliotheekfuncties
Bibliotheekfuncties zijn de ingebouwde functies in C die zijn gegroepeerd en geplaatst op een gemeenschappelijke plaats die de bibliotheek wordt genoemd. Dergelijke functies worden gebruikt om bepaalde specifieke bewerkingen uit te voeren. printf is bijvoorbeeld een bibliotheekfunctie die wordt gebruikt om op de console af te drukken. De bibliotheekfuncties zijn gemaakt door de ontwerpers van compilers. Alle C-standaardbibliotheekfuncties worden gedefinieerd in de verschillende headerbestanden die met de extensie zijn opgeslagen .H . We moeten deze headerbestanden in ons programma opnemen om gebruik te kunnen maken van de bibliotheekfuncties die in dergelijke headerbestanden zijn gedefinieerd. Om bijvoorbeeld de bibliotheekfuncties zoals printf/scanf te gebruiken, moeten we stdio.h in ons programma opnemen. Dit is een headerbestand dat alle bibliotheekfuncties bevat met betrekking tot standaard invoer/uitvoer.
De lijst met meest gebruikte headerbestanden vindt u in de volgende tabel.
SN | Headerbestand | Beschrijving |
---|---|---|
1 | stdio.h | Dit is een standaard invoer/uitvoer-headerbestand. Het bevat alle bibliotheekfuncties met betrekking tot standaard invoer/uitvoer. |
2 | conium.h | Dit is een console-invoer/uitvoer-headerbestand. |
3 | string.h | Het bevat alle tekenreeksgerelateerde bibliotheekfuncties zoals get(), puts(),enz. |
4 | stdlib.h | Dit headerbestand bevat alle algemene bibliotheekfuncties zoals malloc(), calloc(), exit(), etc. |
5 | wiskunde.h | Dit headerbestand bevat alle functies die verband houden met wiskundige bewerkingen, zoals sqrt(), pow(), enz. |
6 | tijd.h | Dit headerbestand bevat alle tijdgerelateerde functies. |
7 | ctype.h | Dit headerbestand bevat alle functies voor tekenverwerking. |
8 | stdarg.h | Variabele argumentfuncties worden gedefinieerd in dit headerbestand. |
9 | signaal.h | Alle signaalverwerkingsfuncties zijn gedefinieerd in dit headerbestand. |
10 | setjmp.h | Dit bestand bevat alle sprongfuncties. |
elf | locale.h | Dit bestand bevat locale-functies. |
12 | errno.h | Dit bestand bevat foutafhandelingsfuncties. |
13 | beweren.h | Dit bestand bevat diagnostische functies. |
Hieronder vindt u aanvullende details over C-functies:
Er zijn verschillende aanvullende informatie met betrekking tot C-functies. Sommigen van hen zijn als volgt:
Modulaire programmering: Het vermogen om verdeling A enorm programma het opdelen in kleinere, beter beheersbare modules is een van de belangrijkste voordelen van het gebruik van functies in C. Elke functie kan een bepaalde taak of functionaliteitscomponent bevatten, waardoor de algehele programmastructuur wordt gestroomlijnd en verduidelijkt. Deze modulaire strategie verbetert het hergebruik van code en maakt onderhoud en foutopsporing eenvoudiger.
willekeurig c
Hergebruik van code: Door functies te gebruiken, kunt u een bepaald algoritme of een bepaald stukje logica slechts één keer maken en dit herhaaldelijk in uw programma gebruiken. U kunt de functie gewoon oproepen wanneer u de code wilt uitvoeren, zodat u deze niet elders hoeft te dupliceren. Het is niet alleen versnelt de ontwikkeling maar zorgt ook voor consistentie en verkleint de kans op fouten.
Inkapseling en abstractie: Door de details van de implementatie van functionaliteit te verdoezelen, bieden functies een abstractieniveau. De interface van een functieprototype kan worden gedefinieerd in a header-bestand , terwijl de daadwerkelijke implementatie in een ander bronbestand kan worden geleverd. Andere delen van het programma kunnen de functie gebruiken zonder dat u hoeft te begrijpen hoe deze intern is geïmplementeerd vanwege de scheiding tussen interface en implementatie.
Eenvoudig programmaonderhoud: Een programma kan gemakkelijker worden begrepen en onderhouden als het in kleinere functies is verdeeld. De mogelijkheid om aan elke functie een specifieke verantwoordelijkheid toe te wijzen, maakt de code leesbaarder en maakt het oplossen van problemen en het opsporen van fouten eenvoudiger. U kunt zich concentreren op de noodzakelijke functie zonder andere delen van het programma te beïnvloeden als er een fout wordt gevonden of er een wijziging nodig is.
Verbeterde samenwerking: Met functies kunnen ontwikkelaars die aan hetzelfde project werken, samenwerken. Het programma kan in functies worden opgedeeld, zodat meerdere teamleden eraan kunnen werken verschillende functies onmiddelijk. Ontwikkelaars kunnen hun werk soepel in de functies integreren als de interfaces goed gespecificeerd zijn, wat de productiviteit verbetert en effectieve ontwikkeling bevordert.
De parameter doorgeven: U kunt argumenten of gegevens naar een functie in C sturen, zodat deze deze kan verwerken. De functie kan acties uitvoeren en resultaten genereren met behulp van deze input. U kunt de flexibiliteit en het aanpassingsvermogen van functies vergroten door parameters door te geven, waardoor de algemene veelzijdigheid van uw programma toeneemt.
Retourwaarden: Functies kunnen waarden terugsturen naar de code die ze heeft aangeroepen, waardoor de uitvoeringsresultaten van de functie kunnen worden gecommuniceerd. U kunt de geretourneerde waarde in andere delen van het programma gebruiken nadat u binnen de functie berekeningen of gegevensmanipulatie hebt uitgevoerd. Waarden retourneren zijn vooral handig als u een resultaat moet berekenen of een voorwaarde moet vaststellen, afhankelijk van de uitvoer van de functie.
Conclusie:
Kortom, functies zijn essentieel voor C-programmeren omdat ze programma's geven organisatie, herbruikbaarheid en modulariteit . Ontwikkelaars kunnen voorkomen dat ze herhaaldelijk dezelfde code maken door grote programma's op te delen in kleinere functies, waardoor de code effectiever en eenvoudiger te onderhouden wordt. Overal in het programma kan een functie worden aangeroepen, wat flexibiliteit biedt en de controlestroom verbetert.
De aangifte, bel , En definitie van functies zijn slechts enkele van hun vele kenmerken. De compiler wordt geïnformeerd door de functiedeclaratie van het naam, argumenten , En soort retour . Het is mogelijk om een functie met of zonder aan te roepen parameters en met of zonder a winstwaarde . Programmeurs construeren door de gebruiker gedefinieerde functies om de leesbaarheid en optimalisatie van hun code te verbeteren, terwijl C-bibliotheekfuncties zoals printf() En scanf() vooraf ingestelde mogelijkheden bieden.
Over het geheel genomen zijn functies cruciale bouwstenen in C-programmering, die voordelen bieden zoals een betere organisatie, hergebruik van code en het eenvoudig volgen van grote programma's. Functieaanroepen kunnen wat overhead toevoegen, maar hun voordelen wegen zwaarder dan de minimale prestatiehit. Programmeurs kunnen effectieve en modulaire C-programma's schrijven door functies te begrijpen en te gebruiken.