programmieren-3-c/a1-5
Luca Conte 54f8f5dd3c rename results to readme 2023-10-04 15:34:46 +02:00
..
README.md rename results to readme 2023-10-04 15:34:46 +02:00
main.c a1-4 & a1-5 2023-09-27 21:48:10 +02:00
unnoetig.h a1-4 & a1-5 2023-09-27 21:48:10 +02:00

README.md

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.