programmieren-3-c/a1-5/README.md

1.6 KiB

A1-5 Ergebnisse

a)

  1. int i; Definition

    Der Integer i wird deklariert und erhält eine Speicheradresse, ist also auch definiert.

  2. extern int summe(int a, int b); Deklaration

    Die Existenz der Funktion wird durch den Funktionskopf deklariert. Die Definition der Funktion erfolgt jedoch durch einen Funktionskörper der hier nicht existiert.

  3. int summe(int a, int b) { return a + b; } Definition

    Es ist sowohl ein Funktionskopf, als auch ein Funktionskörper vorhanden. Somit handelt es sich um eine Definition.

  4. extern int k; Deklaration

    extern bedingt eine Deklaration ohne Definition. Es wird festgelegt, dass die Deklaration an einem anderen Ort stattfindet.

  5. typedef int Entfernung ; Deklaration

    Es wird nur ein neuer Datentyp deklariert, ohne dass ein Wert definiert wird.

  6. Entfernung hannoverNachHamburg; Definition

    Ähnlich wie bei 1.: es wird eine Variable deklariert und definiert

b)

#include bzw Header-Dateien dürfen lediglich Deklarationen enthalten, da ansonsten eine Definition mehrfach erfolgen könnte, was zu einem Compilerfehler führt.

c)

Bei dem Einbinden einer unnötigen Header-Datei wächst die Dateigröße der Objektcode-Datei main.o nicht.

Die Header-Datei wird zwar vom Präprozessor eingebunden, jedoch enthält diese nur Informationen für den Compiler, dass die Funktion unnoetige_funktion(void) an einem anderen Ort definiert wird. Wenn diese Funktion niemals verwendet wird, wird vom Kompilierer auch kein Eintrag gemacht, dass sie benötigt wird. Somit bleibt die Dateigröße unverändert.