Declaratie, Type en Return
Uit onze vorige les heb je de basisstructuur van functies geleerd:
main.c
123456func_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
12345678int 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
12345678int 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
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
doublezijn); - Gebruik van de verkeerde formaat-specificatie (
%d) in de functieprintf()(moet%fzijn).
De correcte versie zou zijn:
main.c
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.
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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 2.63
Declaratie, Type en Return
Veeg om het menu te tonen
Uit onze vorige les heb je de basisstructuur van functies geleerd:
main.c
123456func_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
12345678int 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
12345678int 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
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
doublezijn); - Gebruik van de verkeerde formaat-specificatie (
%d) in de functieprintf()(moet%fzijn).
De correcte versie zou zijn:
main.c
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.
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.
Bedankt voor je feedback!