Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Deklarasjon, Type og Retur | Funksjoner
C-Grunnleggende

bookDeklarasjon, Type og Retur

Fra forrige leksjon lærte du den grunnleggende oppbygningen av funksjoner:

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; }

Deklarasjon

Før du kan bruke en funksjon, må den deklareres. Å kalle en funksjon før den er deklarert vil føre til en feil.

Du kan enten deklarere hele funksjonen samtidig med definisjonen (som vist ovenfor), eller bruke en prototype, som vi vil omtale som et tillegg på slutten av dette segmentet.

Funksjonstyper og returverdier

Funksjonens type informerer kompilatoren om datatypen til funksjonens resultat. For eksempel, hvis funksjonen vår beregner summen av to heltall, forventer vi et heltall som resultat.

main.c

main.c

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

Et misforhold mellom datatypen og returtypen kan føre til at funksjonen (eller til og med hele programmet) ikke fungerer som forventet.

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 }

Når du summerer ikke-heltallsverdier, forventer du et presist resultat. Men på grunn av inkonsistens i typen blir resultatet feilaktig.

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; }

To hovedfaktorer bidrar til denne feilen:

  • Feil returtype (skal være double);
  • Feil formatspesifikator (%d) brukt i printf()-funksjonen (skal være %f).

Den korrekte versjonen vil være:

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; }

Dette innebærer at vi kan tilordne funksjonens resultat direkte til variabler/arrayer eller til og med sende det videre til andre funksjoner. Et eksempel på dette er hvordan vi brukte resultatet med printf-funksjonen i eksemplene ovenfor.

Note
Merk

Formatspesifikatoren for flyttall er %f.

Det er også verdt å nevne at en funksjon kan inneholde flere return-setninger, hvor hver aktiveres under ulike betingelser.

question mark

Du har laget funksjonen count, hvordan ville du kalle den i main-funksjonen?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain more about function prototypes?

What happens if I use the wrong return type in my function?

Can you give an example of a function with multiple return statements?

Awesome!

Completion rate improved to 2.63

bookDeklarasjon, Type og Retur

Sveip for å vise menyen

Fra forrige leksjon lærte du den grunnleggende oppbygningen av funksjoner:

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; }

Deklarasjon

Før du kan bruke en funksjon, må den deklareres. Å kalle en funksjon før den er deklarert vil føre til en feil.

Du kan enten deklarere hele funksjonen samtidig med definisjonen (som vist ovenfor), eller bruke en prototype, som vi vil omtale som et tillegg på slutten av dette segmentet.

Funksjonstyper og returverdier

Funksjonens type informerer kompilatoren om datatypen til funksjonens resultat. For eksempel, hvis funksjonen vår beregner summen av to heltall, forventer vi et heltall som resultat.

main.c

main.c

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

Et misforhold mellom datatypen og returtypen kan føre til at funksjonen (eller til og med hele programmet) ikke fungerer som forventet.

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 }

Når du summerer ikke-heltallsverdier, forventer du et presist resultat. Men på grunn av inkonsistens i typen blir resultatet feilaktig.

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; }

To hovedfaktorer bidrar til denne feilen:

  • Feil returtype (skal være double);
  • Feil formatspesifikator (%d) brukt i printf()-funksjonen (skal være %f).

Den korrekte versjonen vil være:

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; }

Dette innebærer at vi kan tilordne funksjonens resultat direkte til variabler/arrayer eller til og med sende det videre til andre funksjoner. Et eksempel på dette er hvordan vi brukte resultatet med printf-funksjonen i eksemplene ovenfor.

Note
Merk

Formatspesifikatoren for flyttall er %f.

Det er også verdt å nevne at en funksjon kan inneholde flere return-setninger, hvor hver aktiveres under ulike betingelser.

question mark

Du har laget funksjonen count, hvordan ville du kalle den i main-funksjonen?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 2
some-alt