Funktionen dienen dazu Anweisungen zusammenzufassen. So ist es möglich Code-Blöcke beliebig oft auszuführen und den Code in kleinere Teile aufzuteilen. Normalerweise werden Funktionen so geschrieben, dass diese nur eine einzige Aufgabe übernehmen.
Jedes C-Programm muss mindestens eine Funktion enthalten und dies ist die Hauptfunktion namens main
. Diese Hauptfunktion dient auch als Start-Punkt des Programmes.
#include <stdio.h>
float dreieckBerechnen(float grundflaeche, float hoehe);
void ausgabe(float dreieckFlaeche);
int main() {
printf("Dreieck Berechnung\n");
float resultat;
resultat = dreieckBerechnen(3, 6);
ausgabe(resultat);
return 0;
}
float dreieckBerechnen(float grundflaeche, float hoehe){
float flaeche = 0.5 * grundflaeche * hoehe;
return flaeche;
}
void ausgabe(float dreieckFlaeche){
printf("Das Resultat ist: %.2f", dreieckFlaeche);
}
In diesem C-Programm geht es um die Verwendung von Funktionen. Funktionen sind wie kleine Programme innerhalb eines größeren Programms, die bestimmte Aufgaben erledigen. Schauen wir uns dieses Beispiel genauer an:
Am Anfang des Codes gibt es zwei Zeilen, die als "Funktionsprototypen" bezeichnet werden. Sie sind wie die Baupläne für unsere Funktionen. Ein Funktionsprototyp sagt dem Compiler, wie die Funktion aussieht, bevor der eigentliche Code für die Funktion geschrieben wird. Im Beispiel haben wir diese beiden Funktionsprototypen:
float dreieckBerechnen(float grundflaeche, float hoehe);
void ausgabe(float dreieckFlaeche);
Der erste Prototyp sagt dem Compiler, dass es eine Funktion namens dreieckBerechnen
geben wird, die zwei Dezimalzahlen (vom Typ float
) als Eingabe erhält und eine Dezimalzahl zurückgibt. Der zweite Prototyp sagt, dass es eine Funktion namens ausgabe
geben wird, die eine Dezimalzahl als Eingabe erhält, aber nichts zurückgibt (der Rückgabetyp ist void
).
Jede Funktion hat einen "Datentyp", der angibt, welche Art von Daten sie zurückgibt. Im Beispiel gibt dreieckBerechnen
eine Dezimalzahl vom Typ float
zurück, weil sie die Fläche eines Dreiecks berechnet, und Dezimalzahlen genau darstellen kann. Die ausgabe
-Funktion gibt keine Daten zurück, deshalb hat sie den Datentyp void
.
Funktionen benötigen Informationen, um ihre Aufgaben zu erledigen. Diese Informationen nennt man "Übergabeparameter". In dreieckBerechnen
sind die Übergabeparameter grundflaeche
und hoehe
, die beide vom Typ float
sind. Diese Parameter werden verwendet, um die Fläche eines Dreiecks zu berechnen. In der ausgabe
-Funktion gibt es einen Übergabeparameter namens dreieckFlaeche
, der auch vom Typ float
ist. Dieser Parameter wird verwendet, um die berechnete Fläche auszugeben.
Die main
-Funktion ist speziell, weil sie der Startpunkt des Programms ist. Hier beginnt das Programm seine Ausführung. In diesem Fall zeigt die main-Funktion den Text "Dreieck Berechnung" auf dem Bildschirm an und ruft dann die beiden anderen Funktionen auf: dreieckBerechnen
und ausgabe
. Sie verwendet die Rückgabe der dreieckBerechnen
-Funktion, um sie in der ausgabe
-Funktion zu verwenden.
Zusammengefasst sind Funktionen in C wie spezialisierte Mini-Programme, die Aufgaben erledigen können. Die Funktionsprototypen sind die Baupläne, die den Compiler darüber informieren, wie die Funktionen aussehen. Der Datentyp einer Funktion sagt, welche Art von Daten sie zurückgibt, und Übergabeparameter sind Informationen, die Funktionen benötigen, um ihre Aufgaben zu erledigen. In der
main
-Funktion wird das Programm gestartet und die anderen Funktionen werden aufgerufen, um die gewünschten Aufgaben auszuführen.
Die Aufgaben zu Funktionen sind auf GitHub zu finden.