1.6 KiB
A1-5 Ergebnisse
a)
-
int i;
DefinitionDer Integer
i
wird deklariert und erhält eine Speicheradresse, ist also auch definiert. -
extern int summe(int a, int b);
DeklarationDie Existenz der Funktion wird durch den Funktionskopf deklariert. Die Definition der Funktion erfolgt jedoch durch einen Funktionskörper der hier nicht existiert.
-
int summe(int a, int b) { return a + b; }
DefinitionEs ist sowohl ein Funktionskopf, als auch ein Funktionskörper vorhanden. Somit handelt es sich um eine Definition.
-
extern int k;
Deklarationextern
bedingt eine Deklaration ohne Definition. Es wird festgelegt, dass die Deklaration an einem anderen Ort stattfindet. -
typedef int Entfernung ;
DeklarationEs wird nur ein neuer Datentyp deklariert, ohne dass ein Wert definiert wird.
-
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.