Einzelnen Beitrag anzeigen
Ungelesen 07.11.12, 21:56   #12
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 639
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

Ja ok, der Standard für C/C++ sieht vor, dass statische Variablen mit 0 oder NULL vorbelegt werden ... Also werden globale Variablen (dort wird implizit static verwendet) oder Variablen mit dem Schlüsselwort static, mit 0 (oder bei Pointern mit NULL; was aber auch 0 sein kann ... aber da kommen wir jetzt vom hundertsten ins tausendste ...) vorbelegt.

Bei mir geht gcc (Version 4.4.5 [Debian]) sogar her und zeigt das selbe verhalten auch für Variablen, die in der main() definiert wurden (ohne static). Also auch alle uninitialisierten Variablen innerhalb von main() werden mit 0 vorbelegt. Nur Variablen in Funktionen sind unbestimmt. Aber nur wenn ich NICHT im Debugging-Modus bin ...

Somit ist das ganze gar nicht immer so leicht zu sagen sagen ... besser man initialisiert immer (vor der Verwendung; also alles außer Zuweisungen ) und verlässt sich nicht auf Rätselraten. Denn bei einem anderen Compiler, einer anderen Einstellung oder einer anderen Version kann alles wieder ganz anders aussehen ...
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten