logo

C-functies

A functie in C is een reeks instructies die, wanneer ze worden aangeroepen, een specifieke taak uitvoeren. Het is de basisbouwsteen van een C-programma dat modulariteit en herbruikbaarheid van code biedt. De programmeerinstructies van een functie zijn ingesloten { } beugel , met bepaalde betekenissen en het uitvoeren van bepaalde bewerkingen. In andere talen worden ze ook wel subroutines of procedures genoemd.

In dit artikel zullen we leren over functies, functiedefinitie. declaratie, argumenten en parameters, retourwaarden en nog veel meer.

Syntaxis van functies in C

De syntaxis van de functie kan worden onderverdeeld in 3 aspecten:



    Functiedeclaratie Functiedefinitie Functieoproepen

Functieverklaringen

In een functiedeclaratie moeten we de functienaam, het retourtype en het aantal en type van de parameters opgeven. Een functiedeclaratie vertelt de compiler dat er een functie is met de opgegeven naam ergens anders in het programma gedefinieerd.

Syntaxis

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

De parameternaam is niet verplicht bij het declareren van functies. We kunnen de functie ook declareren zonder de naam van de gegevensvariabelen te gebruiken.

Voorbeeld

int sum (int a , int b ); int sum (int , int);>
Functieverklaring

Functieverklaring

Opmerking: Een functie in C moet altijd globaal worden gedeclareerd voordat deze wordt aangeroepen.

Functiedefinitie

De functiedefinitie bestaat uit feitelijke instructies die worden uitgevoerd wanneer de functie wordt aangeroepen (dat wil zeggen wanneer de programmabesturing naar de functie komt).

Een C-functie wordt doorgaans in één stap gedefinieerd en gedeclareerd, omdat de functiedefinitie altijd begint met de functiedeclaratie en we deze dus niet expliciet hoeven te declareren. Het onderstaande voorbeeld dient zowel als functiedefinitie als als declaratie.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Functiedefinitie in C

Functiedefinitie in C

Functie oproep

Een functieaanroep is een instructie die de compiler de opdracht geeft de functie uit te voeren. We gebruiken de functienaam en parameters in de functieaanroep.

In het onderstaande voorbeeld wordt de eerste somfunctie aangeroepen en worden 10,30 doorgegeven aan de somfunctie. Nadat de functieaanroep de som van a en b heeft geretourneerd, wordt de besturing ook teruggegeven aan de hoofdfunctie van het programma.

Werking van functie in C

Functiewerking in C

Opmerking: Functieaanroep is nodig om de programmabesturing naar de functiedefinitie te brengen. Als ze niet worden aangeroepen, worden de functie-instructies niet uitgevoerd.

Voorbeeld van C-functie

C




// C program to show function> // call and definition> #include> // Function that takes two parameters> // a and b as inputs and returns> // their sum> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >// Calling sum function and> >// storing its value in add variable> >int> add = sum(10, 30);> > >printf>(>'Sum is: %d'>, add);> >return> 0;> }>

>

wat is een stapel in Java
>

Uitvoer

Sum is: 40>

Zoals we hebben gemerkt, hebben we geen expliciete functiedeclaratie gebruikt. We hebben de functie eenvoudigweg gedefinieerd en aangeroepen.

Functie Retourtype

Het functieretourtype geeft aan welk type waarde wordt geretourneerd nadat alle functies zijn uitgevoerd. Als we geen waarde willen retourneren, kunnen we het gegevenstype void gebruiken.

Voorbeeld:

int func(parameter_1,parameter_2);>

De bovenstaande functie retourneert een geheel getal na het uitvoeren van instructies binnen de functie.

Opmerking: Er kan slechts één waarde worden geretourneerd uit een C-functie. Om meerdere waarden terug te geven, moeten we pointers of structuren gebruiken.

Functieargumenten

Functieargumenten (ook wel functieparameters genoemd) zijn de gegevens die aan een functie worden doorgegeven.

Voorbeeld:

int function_name(int var1, int var2);>

Voorwaarden voor retourtypen en argumenten

In de programmeertaal C kunnen functies met of zonder argumenten worden aangeroepen en kunnen ze waarden retourneren. Ze kunnen wel of niet waarden retourneren naar de aanroepende functies.

  1. Functie zonder argumenten en zonder retourwaarde
  2. Functie zonder argumenten en met retourwaarde
  3. Functie met argument en zonder retourwaarde
  4. Functie met argumenten en met retourwaarde

Voor meer informatie over functieargumenten en retourwaarden raadpleegt u het artikel – Functieargumenten en retourwaarden in C.

Hoe werkt de C-functie?

De werking van de C-functie kan worden opgesplitst in de volgende stappen, zoals hieronder vermeld:

    Een functie declareren: Het declareren van een functie is een stap waarbij we een functie declareren. Hier definiëren we de retourtypen en parameters van de functie.
  1. Een functie definiëren:
  2. De functie aanroepen: Het aanroepen van de functie is een stap waarbij we de functie aanroepen door de argumenten in de functie door te geven. De functie uitvoeren: Het uitvoeren van de functie is een stap waarbij we alle instructies binnen de functie kunnen uitvoeren om het eindresultaat te krijgen. Een waarde retourneren: Het retourneren van een waarde is de stap waarbij de berekende waarde na de uitvoering van de functie wordt geretourneerd. Het verlaten van de functie is de laatste stap waarbij al het toegewezen geheugen aan de variabelen, functies, enz. wordt vernietigd voordat de volledige controle over de hoofdfunctie wordt gegeven.

Soorten functies

Er zijn twee soorten functies in C:

    Bibliotheekfuncties Door de gebruiker gedefinieerde functies
Soorten functies

Soorten functies in C

1. Bibliotheekfunctie

Een bibliotheekfunctie wordt ook wel a ingebouwde functie . Er bestaat al een compilerpakket dat deze functies bevat, die elk een specifieke betekenis hebben en in het pakket zijn opgenomen. Ingebouwde functies hebben het voordeel dat ze direct bruikbaar zijn zonder te worden gedefinieerd, terwijl door de gebruiker gedefinieerde functies moeten worden gedeclareerd en gedefinieerd voordat ze worden gebruikt.

Bijvoorbeeld:

pow(), sqrt(), strcmp(), strcpy() etc.>

Voordelen van C-bibliotheekfuncties

  • C-bibliotheekfuncties zijn eenvoudig te gebruiken en geoptimaliseerd voor betere prestaties.
  • C-bibliotheekfuncties besparen veel tijd, d.w.z. functie-ontwikkelingstijd.
  • C-bibliotheekfuncties zijn handig omdat ze altijd werken.

Voorbeeld:

C




// C program to implement> // the above approach> #include> #include> // Driver code> int> main()> {> >double> Number;> >Number = 49;> >// Computing the square root with> >// the help of predefined C> >// library function> >double> squareRoot =>sqrt>(Number);> > >printf>(>'The Square root of %.2lf = %.2lf'>,> >Number, squareRoot);> >return> 0;> }>

>

>

Uitvoer

The Square root of 49.00 = 7.00>

2. Door de gebruiker gedefinieerde functie

Functies die de programmeur maakt, staan ​​bekend als door de gebruiker gedefinieerde functies of op maat gemaakte functies . Door de gebruiker gedefinieerde functies kunnen worden verbeterd en aangepast aan de behoefte van de programmeur. Telkens wanneer we een functie schrijven die hoofdletterspecifiek is en niet in een headerbestand is gedefinieerd, moeten we onze eigen functies declareren en definiëren volgens de syntaxis.

vervolgkeuzelijst JavaScript

Voordelen van door de gebruiker gedefinieerde functies

  • Veranderlijke functies kunnen naar behoefte worden aangepast.
  • De code van deze functies is herbruikbaar in andere programma's.
  • Deze functies zijn gemakkelijk te begrijpen, te debuggen en te onderhouden.

Voorbeeld:

C




// C program to show> // user-defined functions> #include> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >int> a = 30, b = 40;> > >// function call> >int> res = sum(a, b);> >printf>(>'Sum is: %d'>, res);> >return> 0;> }>

>

>

Uitvoer

Sum is: 70>

Parameters doorgeven aan functies

De gegevens die worden doorgegeven wanneer de functie wordt aangeroepen, staan ​​bekend als de werkelijke parameters. In het onderstaande programma staan ​​10 en 30 bekend als werkelijke parameters. Formele parameters zijn de variabele en het gegevenstype zoals vermeld in de functiedeclaratie. In het onderstaande programma staan ​​a en b bekend als formele parameters.

Parameters doorgeven aan functies

Parameters doorgeven aan functies

We kunnen op twee manieren argumenten doorgeven aan de C-functie:

  1. Ga voorbij aan waarde
  2. Ga voorbij aan referentie

1. Geef waarde door

Het doorgeven van parameters bij deze methode kopieert waarden van feitelijke parameters naar formele functieparameters. Als gevolg hiervan worden eventuele wijzigingen binnen de functies niet weerspiegeld in de parameters van de aanroeper.

Voorbeeld:

C




// C program to show use> // of call by value> #include> void> swap(>int> var1,>int> var2)> {> >int> temp = var1;> >var1 = var2;> >var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(var1, var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

pvr volledige vorm
Uitvoer

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>

2. Geef referentie door

De werkelijke parameters van de aanroeper en de werkelijke parameters van de functie verwijzen naar dezelfde locaties, dus alle wijzigingen die binnen de functie worden aangebracht, worden weerspiegeld in de werkelijke parameters van de aanroeper.

Voorbeeld:

C




// C program to show use of> // call by Reference> #include> void> swap(>int> *var1,>int> *var2)> {> >int> temp = *var1;> >*var1 = *var2;> >*var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(&var1, &var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

Uitvoer

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>

Voordelen van functies in C

Functies in C zijn een zeer nuttige functie van C met veel voordelen, zoals hieronder vermeld:

  1. De functie kan de herhaling van dezelfde instructies in het programma verminderen.
  2. De functie maakt code leesbaar door modulariteit aan ons programma te bieden.
  3. Er is geen vast aantal belfuncties, u kunt het zo vaak bellen als u wilt.
  4. De functie verkleint de grootte van het programma.
  5. Zodra de functie is gedeclareerd, kunt u deze gewoon gebruiken zonder na te denken over de interne werking van de functie.

Nadelen van functies in C

Hieronder volgen de belangrijkste nadelen van functies in C:

  1. Kan niet meerdere waarden retourneren.
  2. Geheugen- en tijdoverhead als gevolg van stapelframetoewijzing en overdracht van programmabesturing.

Conclusie

In dit artikel hebben we de volgende punten besproken over de functie zoals hieronder vermeld:

willekeurig c
  1. De functie is het codeblok dat zo vaak als we willen binnen een programma kan worden hergebruikt.
  2. Om een ​​functie te gebruiken moeten we een functie aanroepen.
  3. Functiedeclaratie omvat functienaam, retourtype en parameters.
  4. Functiedefinitie omvat de hoofdtekst van de functie.
  5. Er zijn twee typen functies: een door de gebruiker gedefinieerde functie en een bibliotheekfunctie.
  6. In functie kunnen we volgens twee typen aanroepen op waarde en aanroepen op basis van de doorgegeven waarden.

Veelgestelde vragen over functies in C

Q1. Functies definiëren.

Antwoord:

Functies zijn het codeblok dat wordt uitgevoerd telkens wanneer ze worden aangeroepen tijdens de uitvoering van een programma.

Vraag 2. Wat is een voorwaartse aangifte?

Antwoord:

Soms definiëren we de functie nadat deze is aangeroepen, zodat deze beter leesbaar is. In dergelijke gevallen declareren we de functie vóór de definitie en noemen we deze. Een dergelijke verklaring wordt Forward Declaration genoemd.

Q3. Wat is het verschil tussen functiedeclaratie en definitie?

Antwoord:

De gegevens zoals de functienaam, het retourtype en de parameter zijn opgenomen in de functiedeclaratie, terwijl de definitie de hoofdtekst van de functie is. Al deze gegevens worden gedeeld met de compiler volgens de bijbehorende stappen.

Q4. Wat is het verschil tussen functieargumenten en parameters?

Antwoord:

Functieparameters zijn de waarden die worden gedeclareerd in een functiedeclaratie. Terwijl functieargumenten de waarden zijn die tijdens de functieaanroep in de functie worden doorgegeven.

Voorbeeld:

 int func(int x,int y); func(10,20);>

Hier zijn int x en int y parameters, terwijl 10 en 20 de argumenten zijn die aan de functie worden doorgegeven.

Raadpleeg dit artikel voor meer informatie: Verschil tussen argumenten en parameters in C.

Vraag 5. Kunnen we meerdere waarden van een C-functie retourneren?

Antwoord:

Nee, het is doorgaans niet mogelijk om meerdere waarden uit een functie te retourneren. Maar we kunnen beide gebruiken aanwijzingen naar statische of heap-geheugenlocaties om meerdere waarden terug te geven, of we kunnen gegevens in de structuur en dan de structuur teruggeven.

Raadpleeg dit artikel voor meer informatie: Hoe retourneer ik meerdere waarden van een functie in C of C++?

Vraag 6. Wat is de feitelijke en formele parameter?

Antwoord:

Formele parameter: De variabelen die in het functieprototype worden gedeclareerd, staan ​​bekend als formele argumenten of parameters.

Werkelijke parameter: De waarden die in de functie worden doorgegeven, staan ​​bekend als feitelijke argumenten of parameters.