Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Deklaration, Typ und Rückgabe | Funktionen
C-Grundlagen

bookDeklaration, Typ und Rückgabe

Aus der vorherigen Lektion wurde der grundlegende Aufbau von Funktionen vermittelt:

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

Deklaration

Vor der Verwendung einer Funktion muss diese deklariert werden. Das Aufrufen einer Funktion vor ihrer Deklaration führt zu einem Fehler.

Eine Funktion kann entweder gleichzeitig mit ihrer Definition deklariert werden (wie oben dargestellt) oder durch ein Prototyp, auf das am Ende dieses Abschnitts als Bonus eingegangen wird.

Funktionstypen und Rückgabewerte

Der Typ der Funktion informiert den Compiler über den Datentyp des Funktionsergebnisses. Wenn beispielsweise unsere Funktion die Summe von zwei Ganzzahlen berechnet, erwarten wir als Ergebnis eine Ganzzahl.

main.c

main.c

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

Eine Nichtübereinstimmung zwischen dem Datentyp und dem Rückgabetyp kann dazu führen, dass die Funktion (oder sogar das gesamte Programm) fehlerhaft arbeitet.

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 }

Beim Addieren von Nicht-Ganzzahlwerten wird ein präzises Ergebnis erwartet. Aufgrund von Typinkonsistenzen ist das Resultat jedoch fehlerhaft.

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

Zwei Hauptfaktoren führen zu diesem Fehler:

  • Falscher Rückgabetyp (sollte double sein);
  • Falscher Formatbezeichner (%d) in der Funktion printf() (sollte %f sein).

Die korrekte Version wä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; }

Dies bedeutet, dass das Ergebnis der Funktion direkt Variablen/Arrays zugewiesen oder sogar an andere Funktionen übergeben werden kann. Ein Beispiel hierfür ist die Verwendung des Ergebnisses mit der Funktion printf in den oben genannten Szenarien.

Note
Hinweis

Der Formatbezeichner für Gleitkommazahlen ist %f.

Es ist ebenfalls erwähnenswert, dass eine Funktion mehrere return-Anweisungen enthalten kann, wobei jede unter unterschiedlichen Bedingungen aktiviert wird.

question mark

Sie haben die Funktion count erstellt. Wie würden Sie sie in der Funktion main aufrufen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

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

bookDeklaration, Typ und Rückgabe

Swipe um das Menü anzuzeigen

Aus der vorherigen Lektion wurde der grundlegende Aufbau von Funktionen vermittelt:

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

Deklaration

Vor der Verwendung einer Funktion muss diese deklariert werden. Das Aufrufen einer Funktion vor ihrer Deklaration führt zu einem Fehler.

Eine Funktion kann entweder gleichzeitig mit ihrer Definition deklariert werden (wie oben dargestellt) oder durch ein Prototyp, auf das am Ende dieses Abschnitts als Bonus eingegangen wird.

Funktionstypen und Rückgabewerte

Der Typ der Funktion informiert den Compiler über den Datentyp des Funktionsergebnisses. Wenn beispielsweise unsere Funktion die Summe von zwei Ganzzahlen berechnet, erwarten wir als Ergebnis eine Ganzzahl.

main.c

main.c

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

Eine Nichtübereinstimmung zwischen dem Datentyp und dem Rückgabetyp kann dazu führen, dass die Funktion (oder sogar das gesamte Programm) fehlerhaft arbeitet.

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 }

Beim Addieren von Nicht-Ganzzahlwerten wird ein präzises Ergebnis erwartet. Aufgrund von Typinkonsistenzen ist das Resultat jedoch fehlerhaft.

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

Zwei Hauptfaktoren führen zu diesem Fehler:

  • Falscher Rückgabetyp (sollte double sein);
  • Falscher Formatbezeichner (%d) in der Funktion printf() (sollte %f sein).

Die korrekte Version wä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; }

Dies bedeutet, dass das Ergebnis der Funktion direkt Variablen/Arrays zugewiesen oder sogar an andere Funktionen übergeben werden kann. Ein Beispiel hierfür ist die Verwendung des Ergebnisses mit der Funktion printf in den oben genannten Szenarien.

Note
Hinweis

Der Formatbezeichner für Gleitkommazahlen ist %f.

Es ist ebenfalls erwähnenswert, dass eine Funktion mehrere return-Anweisungen enthalten kann, wobei jede unter unterschiedlichen Bedingungen aktiviert wird.

question mark

Sie haben die Funktion count erstellt. Wie würden Sie sie in der Funktion main aufrufen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2
some-alt