Zitat Zitat von 021aet04
... was ist der Unterschied zwischen Variablendefinition und Deklaration?
Als C (-äh) - Programmierer in den Kinderschuhen kann ich da ja nicht kompetent antworten. Aber ich versuchs mal nachzuarbeiten. Der KR - siehe Posting oben - hat diesen Unterschied nicht so vorgestellt, dass ich ihn bisher verstanden habe. Aber ich nehme an, dass die Übersetzer ziemlich kompetent waren, und die haben einmal im Vorwort eine Aussage dazu getroffen, siehe Quote oben. Deutlich erläutert steht es in einer Fußnote, S 9 der gleichen Ausgabe:
Zitat Zitat von Das Übersetzerteam von KR
* Wir unterscheiden zwei Arten von Vereinbarungen: Definitionen, die Objekte erzeugen, und Deklarationen, die nur die Eigenschaften von Objekten festlegen. A.d.Ü.
Die Schwäche bei der Erklärung von Definition und Deklaration im KR finde ich schon deswegen bedauerlich, weil dort z.B. auch steht:
Zitat Zitat von KR auf Seite 26
Ein Hinweis auf die Geschichte: die größte Änderung zwischen ANSI-C und früheren Versionen betrifft Deklaration und Definition von Funktionen. In der ursprünglichen Definition von C hätte man . . . .
Da ich eben, morgens, nach einer deutlichen Erläuterung gesucht habe, finde ich auf Seite 32 genau die richtige Stelle (morgens, nicht mitternachts - da war ich einfach zu blind, als dass ich beim suchenden Querlesen das entdeckt hätte). Ein bisschen versteckt ist diese wichtige Unterscheidung trotz des Hinweises "Beachten sie ..." aber schon - man muss den KR halt wirklich SEHR aufmerksam lesen :
Zitat Zitat von KR auf Seite 32
Beachten Sie, ... Definition bezeichnet die Vereinbarung, in der für eine Variable Speicherplatz reserviert wird; Deklaration bezeichnet die Vereinbarungen, die zwar die Variable beschreiben, aber eben keinen Speicherplatz reservieren.
Und seltsamerweise steht heute (das war doch gestern noch nicht drin . . . ) im Sachverzeichnis des KR sogar "... Definitionen ... und Deklaration 32, ...". Wie sich Bücher über Nacht manchmal verändern . . . Lustig, nein, eher verwirrend, ist ja nun, dass externe Deklarationen von Variablen und Funktionen üblicherweise in den sogenannten Definitionsdateien gesammelt werden.

Damit habe ich den Unterschied mal so grob verstanden. Mehr wird die bewusst durchgeführte Übung beim Programmieren bringen. Leider hatte ich in der Schule nie C gelernt, das wurde garnicht angeboten. Das bißchen, das ich kann, musste ich mir weitgehend selbst beibringen - na ja, nicht ganz. Zum Glück gibt es Kollegen wie sternst e.a. die immer wieder weiterhelfen, wenns gar zu arg hakt.