AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Variablen initialisieren nötig?

Ein Thema von LoL · begonnen am 31. Aug 2005 · letzter Beitrag vom 31. Aug 2005
Antwort Antwort
LoL
(Gast)

n/a Beiträge
 
#1

Variablen initialisieren nötig?

  Alt 31. Aug 2005, 17:06
Hi,

jetzt hab ich mal ne ganze doofe Frage

wenn ich folgendes habe,
var i : byte ist dann "i" automatisch aber der ersten Benutzung immer 0 oder kann es sein das mal 100 oder so drin steht?
Ich habe mir es zwar angewöhnt alle Variablen zu initialisieren, aber ist das nötig? Holt sich Delphu für die Variablen einen leeren Speicherplatz oder wie ist das
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Variablen initialisieren nötig?

  Alt 31. Aug 2005, 17:11
lokale variable sind nicht initialisiert
Beispiel:
Delphi-Quellcode:
procedure abc;
var i: Integer;
begin
  showmessage(inttostr(i));
variablen die in einer Klasse sind werden mit 0 initialisiert (speicher wird vermutlich vorher mit Nullen überschrieben)
und bei Globalen Variablen bin ich mir nicht sicher (aber da kann man ja beim declarieren einen Wert angeben so das ich davon ausgehe das dieser standardmäßig mit 0 initialisiert wird
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Variablen initialisieren nötig?

  Alt 31. Aug 2005, 17:12
Zitat von SirThornberry:
lokale variable sind nicht initialisiert
Nicht ganz - strings und interfaces werden initialisiert.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Variablen initialisieren nötig?

  Alt 31. Aug 2005, 17:24
@Flocke: Das liegt dann aber daran das es keine gewöhnlichen Variablen sind sondern per Compilermagic gesetzt werden (ansonsten würde eine Stringvariable(Pointer) ins Nirvana zeigen und das ganze String-Speichermanagement würde nicht funktionieren)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Variablen initialisieren nötig?

  Alt 31. Aug 2005, 17:36
Wäre auch irgendwo resourcenverschwendend lokale Variablen zu initialisieren.
Eine lokale Variable, in der man nix reinschreibt wäre ja etwas "sinnbefreit".
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Variablen initialisieren nötig?

  Alt 31. Aug 2005, 18:08
Wobei ich die Möglichkeit, eine lokale Variable direkt bei der Deklaration initialisieren zu können, nicht von der Tischkante stoßen würde (in C/C++ geht so was ja auch).

Delphi-Quellcode:
procedure Bla;
var
  x: integer = 77;
begin
  ...
end;
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#7

Re: Variablen initialisieren nötig?

  Alt 31. Aug 2005, 18:25
Zitat von Flocke:
Wobei ich die Möglichkeit, eine lokale Variable direkt bei der Deklaration initialisieren zu können, nicht von der Tischkante stoßen würde (in C/C++ geht so was ja auch).

Delphi-Quellcode:
procedure Bla;
var
  x: integer = 77;
begin
  ...
end;
So etwas geht nur bei beschreibbaren Konstanten, nicht bei Variablen.

Jedenfalls in Delphi.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz