Entwickler-Ecke
Sonstiges (Delphi) - Muss ich Variablen initialisieren?
NeWsOfTzzz - Di 26.10.04 01:27
Titel: Muss ich Variablen initialisieren?
Ich war früher begeisteter C++ Programmierer und habe Delphi nie richtig gelern ^^. Ist aber alles ziemlich gleich, aber jetzt ne GANZ wichtige Frage:
Bei C++ zeigte eine neue gemachte Variable auf einen zufälligen Speicherbereich, in den meisten Fällen war das 0 (bei integer) aber auch manchmal was anderes. Also musste man immer erst hingehen und Variable=0; machen, ist das bei Delphi auch so? Wenn nicht kann ich mir die hundertfachen Nullzuweisungen ja sparen...
Sprint - Di 26.10.04 01:39
Das kann man so pauschal nicht sagen. Das kommt auf deinen Code an, den du schreibst.
Hier mal ein Beispiel wo du sehen kannst, das lokale Variablen nicht gleich null sind.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var MyGlobalValue: Integer;
function GetValue(Value: Integer): Integer; begin Result := Value; end;
procedure TForm1.FormCreate(Sender: TObject); var MyLocalValue: Integer; begin ShowMessage(IntToStr(GetValue(MyGlobalValue))); ShowMessage(IntToStr(GetValue(MyLocalValue))); end; |
NeWsOfTzzz - Di 26.10.04 01:44
Und was für ne Verarsche ist das jetzt mit GetValue? ...
ps: [Warnung] Main.pas(176): Variable 'test' wurde wahrscheinlich nicht Initialisiert
Ok dann doch alles initialisieren.. hätte doch mal nen Compiler sein können der für mich initialisiert aber NEIN natürlich nicht wer denkt denn sowas O.o
Sprint - Di 26.10.04 01:52
NeWsOfTzzz hat folgendes geschrieben: |
Und was für ne Verarsche ist das jetzt mit GetValue? ... |
Das soll dir nur was zeigen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var MyGlobalCounter: Integer;
procedure TForm1.Button1Click(Sender: TObject); var MyLocalCounter: Integer; begin Inc(MyLocalCounter); ShowMessage(IntToStr(MyLocalCounter)); end;
procedure TForm1.Button2Click(Sender: TObject); begin Inc(MyGlobalCounter); ShowMessage(IntToStr(MyGlobalCounter)); end; |
Delete - Di 26.10.04 02:09
NeWsOfTzzz hat folgendes geschrieben: |
Und was für ne Verarsche ist das jetzt mit GetValue? ... |
Meinst du das ist der richtige Umgangston in einem Forum, in dem man Hilfe erwartet?
Zitat: |
ps: [Warnung] Main.pas(176): Variable 'test' wurde wahrscheinlich nicht Initialisiert
Ok dann doch alles initialisieren.. hätte doch mal nen Compiler sein können der für mich initialisiert aber NEIN natürlich nicht wer denkt denn sowas O.o |
Generell gilt, dass loakle Variablen nicht initialisiert werden globale Variablen und private Felder einer Klasse aber schon.
NeWsOfTzzz - Di 26.10.04 02:44
var int:integer
int=getvalue(int)... das mein ich mit verarsche ^^ war ausserdem net böse gemeint
Christian S. - Di 26.10.04 08:47
NeWsOfTzzz hat folgendes geschrieben: |
var int:integer
int=getvalue(int)... das mein ich mit verarsche ^^ war ausserdem net böse gemeint |
Trotzdem möchten wir einen solchen Umgangston hier nicht haben! :mahn:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!