Ich stelle grad etwas schockiert fest, dass ich wohl über Jahre eine falsche Vorstellung von Deklaration und Definition mit mir rum getragen hatte.
Im Buch von Heiko Kalista "C++ für Spieleprogrammierer" (2. Auflage) steht auf Seite 29. folgendes:
Auch im Buch sind an dieser Stelle die beiden Wörter fett gedruckt.Geht man wie oben beschrieben vor und teilt dem Compiler mit, von welchem Typ eine Variable ist und welchen Namen sie haben soll, so hat man eine Variable deklariert. Weist man der Variable danach einen Wert zu, so hat min die Variable definiert.
Es ist wichtig, diese beiden Begriffe zu kennen und auseinander halten zu können. Sobald man eine Variable deklariert, wird automatisch der benötigte Speicher vom Compiler reserviert und unsere fisch gebackene Variable zur Verfügung stellt (natürlich erst dann, wenn das Programm kompiliert wurde).
...
Damit nun durch nicht initialisierte (definierte) Variablen keine Fehler enstehen können, gibt uns der Compiler in einem solchen Fall eine Warnung aus, die auch beachtet werden sollte.
Dazu ein Auszug des Listings:
Code: Alles auswählen
int main()
{
int Lebensenergie; // Variable deklarieren
Lebensenergie = 100; // Variable definieren
return 0;
}
Bevor ich mich aber zu weit aus dem Fenster lehne, würde ich die Frage gerne an euch Experten weiter geben.
Ich weiss übrigens nicht, ob sich in der neusten Auflage des Buches hinsichtlich dieser Stelle etwas geändert hat.
Das Buch hatte mir damals eigentlich sehr geholfen und ich fand, dass viele Themen gut vermittelt wurden - auch wenn das Buch nicht den Anspruch hat, in die Tiefe zu gehen.
Das Buch scheint nach wie vor beliebt zu sein und die Rezensionen auf Amazon liegen im oberen Bereich.
https://www.amazon.de/C-f-C3-BCr-Spiele ... b_image_bk
Gibt es eigentlich sowas wie eine Referenz (für C und für C++)? Eine Art "Bibel", auf die man sich im Zweifelsfall berufen kann?
Wo in allerletzter Instanz festgelegt ist, was tatsächlich gilt?
Gruss starcow