![]() |
Re: Bei der Deklaration einer Variable einen Wert definieren
Zitat:
Lokal vs. global hat vom Prinzip her nichts mit Lebensdauer, Initialisierung usw. zu tun. Es gibt ja auch lokale Konstanten und Funktionen? Soll das auch nicht mehr funktionieren? Lokal bedeutet, das eine Entität halt nur innerhalb einer Funktion sichtbar ist und nicht in der ganzen Unit bzw. im Programm. Außerdem: wie eine lokale initialisierte Variable "alloziert" und "belegt" wird, sollte nicht in der Sprache festgelegt werden, das ist halt Implementation durch die Kompilerentwickler, und wird auch jetzt schon eifrig verwendet: siehe Schleifen-"Variable", die nicht auf dem Stack sondern in Registern sind; und diese Register können dekrementiert werden, obwohl die Variable inkrementiert wird. Außerdem: Du hast wohl auch nichts dagegen, wenn bei Ansistrings oder Referenzcounted-Konstrukte "Die Initialisierungs-Syntax würde dies verwischen" würde. Also versucht nicht den Leuten, die bestimmte Konstruktion verwenden wollen, diese auszureden, ihr müßt sie ja nicht verwenden. Und das Pseudoargument, man muß nicht alles machen, was geht, fällt hier aus historischen Gründen auf den Urheber zurück, der "var =" benutzt. Gruß Gammatester |
Re: Bei der Deklaration einer Variable einen Wert definieren
schau dir alleine mal die Speicherbereiche an, also wo was abgelegt wird (des is wohl die am Einfachsten sichtare Auswirkung)
Delphi-Quellcode:
WritableConsts sind in Wirklichkeit auch nur Varialen und reagieren (bis auf gewisse Unterschiede) auch genauso.
const
A = 'xyz'; {$WRITEABLECONST ON} X: String = 'abc'; {$WRITEABLECONST OFF} Y: String = 'bcd'; var Z: String; begin Z := 'cde'; Caption := Format('%x %x %x %x', [Integer(@X[1]), Integer(@Y[1]), Integer(@Z[1]), Integer(@A[1])]); Vorallem im ASM-Bereich wirst'e schnell merken, daß es einen großen Unterschied zwischen Konstanten, änderbaren Konstanten und Variablen gibt ... also z.B. wo/wie der Wert einer Integers abgelegt wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz