Unterschied zwischen Deklaration und Definition? [Programmieren][C]
+Erklärung der einzelnen Begriffe
Danke im Voraus :)
2 Antworten
Der einfachere von beiden Begriffen ist wohl die Definition: Es handelt sich - einfach gesagt - um die eigentliche Funktion oder die eigentliche Variable. Beispiel:
int a;
int b=5;
int c(int d)
{
static int e=5;
e+=d;
return e+1;
}
Bei C werden beim Compilieren erst die einzelnen C-Dateien in Assemblercode verwandelt und danach mehrere Assemblerdateien (in mehreren Schritten) zu einem Programm zusammengefasst. Im Gegensatz zu zum Beispiel Java weiß der Compiler bei C nichts davon, was in anderen C-Dateien vorkommt. Er kann bei einem Projekt, das aus zwei C-Dateien besteht, also beim Compilieren der ersten Datei nicht wissen, dass die zweite Datei zum Beispiel eine bestimmte Funktion enthält.
Aus diesem Grund gibt es bei C die Deklaration. Eine Deklaration gibt nur an, dass irgendwo im Projekt eine bestimmte Funktion oder Variable existiert. Die Deklarationen für das Beispiel oben sähen folgendermaßen aus:
extern int a;
extern int b;
int c(int d);
Ferner gibt es bei C/C++ noch einen Preprozessor. Dieser wird streng genommen vor dem eigentlichen Compilieren ausgeführt, ist eigentlich eine Art Textverarbeitung und kann auch für andere Zwecke als für C-Programme benutzt werden. Dieser bearbeitet Anweisungen wie "#include"; diese Anweisung wird vom Preprozessor durch den Inhalt einer kompletten Header-Datei ersetzt. Solche Dateien wiederum enthalten ganz viele Deklarationen. Dadurch erspart man sich das Eintippen der ganzen Deklarationen, die in einer Header-Datei vorkommen.
http://de.wikipedia.org/wiki/Deklaration_%28Programmierung%29
Man kann hier durchaus die Wikipedia heranziehen …