Initialisierung von Variabeln?
-
Hallo
Ich portiere eine alte SW auf den Borland bulider 6.
Dabei habe ich nun Probleme, das der Compiler Variabeln nicht mit 0 initialisert. Ist das so, oder habe ich was falsch eingestellt?
Bei den Variabeln handelt es sich um ein struct:typedef struct { unsigned vgeb; /* von */ unsigned vobj; unsigned vdet; unsigned ngeb; /* nach */ unsigned nobj; unsigned ndet; int anz; /* wievielte Verbindung */ long pos; int vorw; /* Satz aus pos ist vorw„rts zu interpretieren */ } aglT_VNINDEX; .... void vonnacherst_btz(unsigned geb, unsigned obj) { aglT_VNINDEX vind; // wird nicht au 0 initialisert... // initialiserung von Hand nötig. vind.vgeb = 0; vind.vobj = 0; vind.vdet = 0; vind.ngeb = 0; vind.nobj = 0; vind.ndet = 0; .... }Kann ich etwas angeben, damit alle localen Variablen mit 0 Initialisert werden?
Vielen Dank für Eure Hilfe!
-
Hallo
laut C++ Standard werden lokale Variablen und Klassenmember nicht automatisch initialisiert. Schreib eine eigene Init-Funktion bzw. einen Konstruktor mit Initialisierungsliste.
bis bald
akari
-
Danke für die schnelle Antwort.
Wenn ich die Initialiserung auf null überall machen muss ist das eine Menge Arbeit im alten Code!
Also wenn jemand eine andre Möglichkeit kennt währe ich sehr dnakbar....Gruss Felix
-
felix67 schrieb:
Wenn ich die Initialiserung auf null überall machen muss ist das eine Menge Arbeit im alten Code!
... um die du dann wohl leider nicht drum herum kommen wirst ...
felix67 schrieb:
Also wenn jemand eine andre Möglichkeit kennt währe ich sehr dnakbar....
Diese Idee wird dir hier niemand liefern können; außer natürlich, derjenige besitzt einen Compiler, der sich nicht an den Standard hält ...
In der Regel ist dies ein Fall, in dem man sein Softwarekonzept überdenken sollte; wenn dies bei dir nicht möglich ist (z.B. da Portierung von alter Software), dann kommst du ohne den Mehraufwand beim Tippen imho nicht davon.
-
Wenn es wirlich nur um so simple structs geht, ist vielleicht ein ZeroMemory(&vind, sizeof(vind)); weniger Aufwand.
-
Danke für Eure Hilfe.
Ich habe begonnen mit memset die Structs auf 0 zu setzen.
So ist der Aufwnad endlich......Schöne Festtag!