Menu
Coddy logo textTech

Quelldateien

Teil des Abschnitts Objektorientierte Programmierung der C-Journey von Coddy. Lektion 3 von 61.

Bisher haben wir Funktionsdeklarationen in Header-Dateien platziert, aber der eigentliche Funktionscode (die Definition) befand sich in der Hauptdatei. Der nächste Schritt in der modularen Programmierung besteht darin, diese Definitionen in eigene Quelldateien (.c-Dateien) zu verschieben.

Dies erstellt eine klare Struktur aus drei Teilen: Der header deklariert functions, eine separate Quelldatei definiert sie, und main verwendet sie einfach. So sieht es aus:

// math_utils.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H

int add(int a, int b);

#endif
// math_utils.c
#include "math_utils.h"

int add(int a, int b) {
    return a + b;
}
// main.c
#include <stdio.h>
#include "math_utils.h"

int main() {
    printf("%d\n", add(5, 3));
    return 0;
}

Beachte, dass math_utils.c seinen eigenen Header einbindet. Dadurch wird sichergestellt, dass die Funktionsdefinition mit der Deklaration übereinstimmt. Falls sie nicht übereinstimmen, erkennt der Compiler den Fehler. Die Hauptdatei muss nur den Header einbinden, um die Funktion zu verwenden; sie muss nicht wissen, wie add intern funktioniert.

Diese Trennung hält Implementierungsdetails verborgen und ermöglicht es dir, die Logik einer Funktion zu ändern, ohne Dateien anzufassen, die diese Funktionen verwenden.

challenge icon

Aufgabe

Einfach

Erstelle ein einfaches Mathe-Hilfsprogramm, indem du deinen Code in die passende Struktur aus drei Dateien aufteilst: eine Header-Datei für Deklarationen, eine Quelldatei für Implementierungen und eine Hauptdatei, die sie verwendet.

Du erstellst drei Dateien:

  • math_ops.h: Deine Header-Datei mit Funktionsdeklarationen für zwei Operationen: multiply und subtract. Beide Funktionen akzeptieren zwei Ganzzahlen und geben eine Ganzzahl zurück. Vergiss nicht, Include-Guards mit dem Symbol MATH_OPS_H zu verwenden.
  • math_ops.c: Deine Quelldatei mit den eigentlichen Implementierungen von multiply und subtract. Diese Datei sollte ihren eigenen Header einbinden, um sicherzustellen, dass Deklarationen und Definitionen übereinstimmen.
  • main.c: Deine Hauptdatei, die den Header einbindet und beide Funktionen verwendet, um Berechnungen durchzuführen.

Die Funktion multiply sollte das Produkt zweier Ganzzahlen zurückgeben, und subtract sollte die erste Ganzzahl minus der zweiten zurückgeben.

Du erhältst zwei ganzzahlige Eingaben: a und b.

Gib in deiner Hauptfunktion die Ergebnisse beider Operationen in separaten Zeilen aus:

Product: {result of multiply}
Difference: {result of subtract}

Beispielsweise würde die Ausgabe bei den Eingaben 8 und 3 so aussehen:

Product: 24
Difference: 5

Probier es selbst

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

int main() {
    int a, b;
    scanf("%d", &a);
    scanf("%d", &b);
    
    // TODO: Rufe die multiply-Funktion mit a und b auf und speichere das Ergebnis
    
    // TODO: Rufe die subtract-Funktion mit a und b auf und speichere das Ergebnis
    
    // TODO: Gib die Ergebnisse im folgenden Format aus:
    // Produkt: {Ergebnis von multiply}
    // Differenz: {Ergebnis von subtract}
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-C-Compiler