Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#21

Re: Bei der Deklaration einer Variable einen Wert definieren

  Alt 9. Aug 2008, 00:15
Zitat von Apollonius:
Dass dieses Konstrukt bei lokalen Variablen und Felder nicht funktioniert, finde ich absolut richtig. Bei globalen Variablen und Konstanten wird der Startwert einfach in einem Abschnitt des PE-Formats angegeben. Bei lokalen Variablen geht das nicht, man muss erst die Variable auf dem Stack allozieren und dann noch einen Wert hineinschreiben, was auf das selbe wie die explizite Zuweisung hinausläuft. Die Initialisierungs-Syntax würde dies verwischen.
Ach das ist ja interessant:) Ich glaube, hier werden die ganze Zeit zwei Konzepte verwechselt bzw. vermischt.

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
  Mit Zitat antworten Zitat