Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Declaratie, Type en Return | Functies
C-Basis

bookDeclaratie, Type en Return

Uit onze vorige les heb je de basisstructuur van functies geleerd:

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

Declaratie

Voordat een functie gebruikt kan worden, moet deze gedeclareerd worden. Het aanroepen van een functie vóór de declaratie resulteert in een foutmelding.

Je kunt de volledige functie tegelijk met de definitie declareren (zoals hierboven geïllustreerd), of een prototype gebruiken, waar we als bonus aan het einde van dit onderdeel op terugkomen.

Functietypen en Retourwaarden

Het functietype informeert de compiler over het gegevenstype van de uitkomst van de functie. Bijvoorbeeld, als onze functie de som van twee gehele getallen berekent, verwachten we een geheel getal als resultaat.

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

Een verschil tussen het gegevenstype en het retourtype kan ervoor zorgen dat de functie (of zelfs het hele programma) niet correct werkt.

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

Bij het optellen van niet-gehele waarden verwacht je een nauwkeurig resultaat. Door inconsistentie in het type is het resultaat echter foutief.

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; return result; // Output of function } int main() { // Call and immediately printing the result of our function printf("Expected Result is 238.75, but result is %d\n", func()); return 0; }

Twee primaire factoren dragen bij aan deze fout:

  • Een onjuist returntype (moet double zijn);
  • Gebruik van de verkeerde formaat-specificatie (%d) in de functie printf() (moet %f zijn).

De correcte versie zou zijn:

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }

Dit betekent dat we het resultaat van de functie direct kunnen toewijzen aan variabelen/arrays of zelfs kunnen doorgeven aan andere functies. Een voorbeeld hiervan is hoe we het resultaat met de functie printf hebben gebruikt in de bovenstaande scenario's.

Note
Opmerking

De formaat-specificatie voor zwevendekommabedragen is %f.

Het is ook vermeldenswaard dat een functie meerdere return-instructies kan bevatten, waarbij elke instructie onder verschillende voorwaarden wordt geactiveerd.

question mark

Je hebt de functie count gemaakt, hoe zou je deze aanroepen binnen de functie main?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 2.63

bookDeclaratie, Type en Return

Veeg om het menu te tonen

Uit onze vorige les heb je de basisstructuur van functies geleerd:

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

Declaratie

Voordat een functie gebruikt kan worden, moet deze gedeclareerd worden. Het aanroepen van een functie vóór de declaratie resulteert in een foutmelding.

Je kunt de volledige functie tegelijk met de definitie declareren (zoals hierboven geïllustreerd), of een prototype gebruiken, waar we als bonus aan het einde van dit onderdeel op terugkomen.

Functietypen en Retourwaarden

Het functietype informeert de compiler over het gegevenstype van de uitkomst van de functie. Bijvoorbeeld, als onze functie de som van twee gehele getallen berekent, verwachten we een geheel getal als resultaat.

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

Een verschil tussen het gegevenstype en het retourtype kan ervoor zorgen dat de functie (of zelfs het hele programma) niet correct werkt.

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

Bij het optellen van niet-gehele waarden verwacht je een nauwkeurig resultaat. Door inconsistentie in het type is het resultaat echter foutief.

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; return result; // Output of function } int main() { // Call and immediately printing the result of our function printf("Expected Result is 238.75, but result is %d\n", func()); return 0; }

Twee primaire factoren dragen bij aan deze fout:

  • Een onjuist returntype (moet double zijn);
  • Gebruik van de verkeerde formaat-specificatie (%d) in de functie printf() (moet %f zijn).

De correcte versie zou zijn:

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }

Dit betekent dat we het resultaat van de functie direct kunnen toewijzen aan variabelen/arrays of zelfs kunnen doorgeven aan andere functies. Een voorbeeld hiervan is hoe we het resultaat met de functie printf hebben gebruikt in de bovenstaande scenario's.

Note
Opmerking

De formaat-specificatie voor zwevendekommabedragen is %f.

Het is ook vermeldenswaard dat een functie meerdere return-instructies kan bevatten, waarbij elke instructie onder verschillende voorwaarden wordt geactiveerd.

question mark

Je hebt de functie count gemaakt, hoe zou je deze aanroepen binnen de functie main?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 2
some-alt