Suche
Suche Menü

Funktions-Prototypen

Wie wir wissen, müssen wir die Funktionen unserem Compiler erst bekanntmachen, bevor wir sie aufrufen können. Dies erreichen wir, indem wir die Funktionen über unser Hauptprogramm platziert haben. Die Funktionen können schnell zunehmen und unseren Programmcode in die Länge ziehen, somit müssen wir immer ganz nach unten scrollen, wenn wir zum Hauptprogramm gelangen wollen. Dies wollen wir mittels den Funktions-Prototypen ändern. Diese platzieren wir über das Hauptprogramm, wobei der Funktionskörper dann an einer beliebigen Stelle im Script sein darf.

Wir wollen dies anhand unseres vorherigen Beispiels ansehen:

// Multiplikations-Rechner / Funktions-Prototypen / v0.3

#include<stdio.h>

// Funktions-Prototypen
float eingabeZahl();
float multipliziere(float zahl1, float zahl2);
void ausgabeErgebnis(float ergebnis);

// Hauptprogramm
int main() {
	// Rechenvorgang
	ausgabeErgebnis(multipliziere(eingabeZahl(), eingabeZahl()));
	return 0;
}

// Funktionen
float eingabeZahl() {
	float eingabe;
	printf("\nEingabe Zahl: ");
	scanf("%f", &eingabe);
	return eingabe;
}

float multipliziere(float zahl1, float zahl2) {
	return (zahl1 * zahl2);
}

void ausgabeErgebnis(float ergebnis) {
	printf("\nErgebnis: %f\n", ergebnis);
}

Die Prototypen werden ohne die geschweiften Klammern geschrieben, da sie keinen Funktionskörper besitzen. Dafür müssen sie aber mit einem Strichpunkt ; abgeschlossen werden. Der Datentyp des Rückgabewertes und der Parameter müssen übereinstimmen. Lediglich die Bezeichner der Parameter können beim Prototyp weggelassen werden:

// Funktions-Prototypen
float eingabeZahl();
float multipliziere(float, float);
void ausgabeErgebnis(float);