📘 Kapitel 4 · Funktionen & Strukturierung

Einführung in
Funktionen

Wiederverwendbarer Code · void · Prototypen · DRY-Prinzip

16 / 30 Units
Ömer
Kapitel 4: Funktionen & Strukturierung ~45 Min. Theorie + Simulator + Quiz + Spickzettel
Ömer
Ömer sagt:

Funktionen sind das wichtigste Konzept der strukturierten Programmierung. Einmal schreiben, überall nutzen – das ist DRY: Don't Repeat Yourself!

Was ist eine Funktion?

Ein benannter, wiederverwendbarer Code-Block. Du definierst ihn einmal und rufst ihn beliebig oft auf.

SYNTAX
Rückgabetyp name(Parameter) {
    // Funktionskörper
}
BEISPIEL
void trennlinie() {
    printf("------\n");
}

Anatomie einer Funktion

TeilBeispielBedeutung
RückgabetypvoidWas gibt die Funktion zurück? void = nichts
NamebegruesseEindeutig, sprechend, klein geschrieben
Parameterliste()Eingaben – leer wenn keine
Körper{ ... }Der ausgeführte Code

Prototypen

Vorwärtsdeklaration

Wenn eine Funktion nach main() steht, braucht sie einen Prototyp vorher:
void begruesse(); ← Prototyp (Semikolon!)
Dann kann der Compiler die Funktion kennen, bevor er sie sieht.

Warum Funktionen?

VorteilErklärungOhne Funktionen
DRY-PrinzipCode einmal schreiben, überall nutzenDenselben Code 10x kopieren
Lesbarkeitmain() beschreibt WAS, Funktionen WIEEine riesige main() mit allem
TestbarkeitJede Funktion einzeln testenGesamtprogramm testen
WartbarkeitFehler nur einmal behebenFehler an 10 Stellen beheben

Ausführungsreihenfolge

Das Programm startet immer in main(). Von dort werden Funktionen aufgerufen – in der Reihenfolge der Aufrufe. Nach dem Ende einer Funktion kehrt die Ausführung genau an die Stelle zurück, von der sie aufgerufen wurde.

Ablauf-Schema

main() startet
    → f1() wird aufgerufen
    ← Rückkehr zu main()
    → f2() wird aufgerufen
    ← Rückkehr zu main()
main() endet (Programm fertig)

Häufige Fehler

Warnung: Typische Anfängerfehler mit Funktionen

  • Funktion nach main() ohne Prototyp: Der Compiler sieht die Funktion nicht rechtzeitig – Warnung oder Fehler. Lösung: Prototyp vor main() einfügen.
  • void-Funktion mit Rückgabewert aufrufen: int x = trennlinie(); – void gibt nichts zurück, der Wert ist undefiniert.
  • Funktion definiert aber nie aufgerufen: Die Funktion existiert im Code, wird aber nie ausgeführt. Kein Fehler, aber toter Code – Hinweis auf Logikfehler.

⚡ Code-Simulator

Schreibe eigene Funktionen und teste sie – der Simulator zeigt printf-Ausgaben:

C Simulator – Unit 16 – Funktionen
▶ Ausgabe
– Klicke AUSFÜHREN –
Ömer
Ömer sagt:

Schreibe eigene Funktionen und ändere die Argumente beim Aufruf. So siehst du direkt wie Funktionen Daten verarbeiten!

🎯 Wissens-Quiz

Frage 1
Was ist eine Funktion in C?
AEine Variable
BEin benannter, wiederverwendbarer Code-Block
CEin Datentyp
DEin Operator
Frage 2
Was bedeutet 'void' als Rückgabetyp?
ADie Funktion gibt 0 zurück
BDie Funktion gibt nichts zurück
CDie Funktion hat keine Parameter
DDie Funktion ist leer
Frage 3
Was ist ein Prototyp?
AEine vollständige Funktion
BDie Deklaration einer Funktion vor ihrer Definition
CEin Fehler im Code
DEine globale Variable
Frage 4
Welche Aussage zum DRY-Prinzip ist richtig?
ADuplicate, Repeat Yourself
BDon't Repeat Yourself
CDo Repeat Yourself
DDuplicate, Reuse Yourself
Frage 5
Welche Schreibweise ist für Funktionsnamen empfohlen?
AGROSS_BUCHSTABEN
BErstesBuchstabeGross
Cklein_mit_unterstrich
D1_beginnt_mit_zahl
Frage 6
Was ist ein Funktionsprototyp?
AEine vollständige Funktion mit Körper
BEine Funktion die nur void zurückgibt
CDeklaration der Funktion vor main() damit der Compiler sie kennt
DEine Funktion die sich selbst aufruft
Frage 7
Was ist der Unterschied zwischen void und int als Rückgabetyp?
Aint-Funktionen sind schneller
Bvoid-Funktionen brauchen mehr Speicher
CEs gibt keinen Unterschied
Dvoid gibt nichts zurück, int gibt eine Ganzzahl zurück
Frage 8
Was bedeutet DRY in der Programmierung?
ADon't Repeat Yourself – Code nicht duplizieren
BDo Repeat Yourself – Code kopieren ist OK
CDelete Redundant Years
DDefine, Run, Yield

📋 Spickzettel

Funktions-Syntax
void name() {}Einfachste Funktion
void name();Prototyp (Deklaration)
name();Aufruf
void = kein ReturnKein Rückgabewert
Vorteile
Wiederverwendung1× schreiben, n× nutzen
LesbarkeitCode klar strukturiert
WartbarkeitFehler 1× beheben
DRYDon't Repeat Yourself

✅ Checkliste Unit 16

  • Ich kann eine void-Funktion definieren und aufrufen
  • Ich kenne die 4 Teile einer Funktion
  • Ich weiß was ein Prototyp ist und wann er nötig ist
  • Ich verstehe das DRY-Prinzip