Programmiersprache C: Auslagern häufig benutzter Funktionen



Manche selbst geschriebenen Funktionen braucht man häufiger.
Man könnte sie in eine separate Datei auslagern, die man dann immer wieder benutzen kann.
Und dies wollen wir im nächsten Beispiel tun.

Im Hauptprogramm (das mit der main-Funktion) werden die separaten Dateien mit der Präprozessor-Anweisung #include eingebunden.
Eine solche Datei kann eine sog. Header-Datei sein. Das kennst Du schon, z. B.: #include <stdio.h>

In diesem Beispiel wurden die Funktionen addiere() und subtrahiere() in eine separaten Datei namens "operationen.h" ausgegliedert.

Eigentlich sollten in einer Header-Datei nur die Prototypen der Funktionen stehen.
Aber der Einfachheit wegen machen wir es jetzt so.


Die Hauptprogramm-Datei "hauptprogramm.c" bindet die Datei "operationen.h" über eine #include-Anweisung ein.
Da sich unsere Datei im selben Verzeichnis wie unser Hauptprogramm befindet, wird ihr Name in Hochkommas gesetzt.

Erste Datei: "hauptprogramm.c"

#include <stdio.h>
#include "operationen.h"

int main() {
    printf("Summe: %d \n", addiere(3, 5) );
    printf("Differenz: %d \n", subtrahiere(3, 5) );
    return 0;
}

Separate Datei: "operationen.h"

int addiere(int a, int b) {
return a + b;
}

int subtrahiere(int a, int b) {
return a - b;
}


Richtiges Benutzen von Header-Dateien

Obige Vorgehensweise funktioniert zwar so - es ist aber eigentlich etwas ausfühlicher zu programmieren:

Eigentlich gehören in eine Header-Datei keine vollständigen Funktionen, sonderen nur deren Prototypen.

Erste Datei: "hauptprogramm.c"

#include <stdio.h>
#include "operationen.h"

int main() {
    printf("Summe: %d \n", addiere(3, 5) );
    printf("Differenz: %d \n", subtrahiere(3, 5) );
    return 0;
}

Separate Datei: "operationen.h", sie enthält nur die Prototypen der Funktionen:

int addiere(int a, int b);
int subtrahiere(int a, int b);


Separate Datei: "operationen.c", sie enthält die vollständigen Funktionen:

#include "operationen.h"

int addiere(int a, int b) {
return a + b;
}

int subtrahiere(int a, int b) {
return a - b;
}

Kompilieren mußt Du dieses Dreiergespann dann mit: gcc -o startmich hauptprogramm.c operationen.c
... um die startbare Datei "startmich" zu erhalten.


weiter