Ich habe versucht, dies zu lesen, aber ich kann keine Erwähnung finden.Was ist die Lebenszeit von S "..." in Forth?
Nach der Norm, eine Zeichenfolge mit S"
erstellt wird, kann nicht geändert werden, und aus einem einfachen Experiment in Gforth es ist offensichtlich, dass der Raum für die Zeichenfolge nicht aus dem Wörterbuch oder Padflächen kommt:
hex
here . 7F48AB3B8758 ok
pad . 7F48AB3B8808 ok
s" test" .s <2> 77FDD0 4 ok
Wie lange kann ich erwarten, dass diese Adresse gültig ist?
Mit anderen Worten, wenn ich diese Adresse (und Anzahl) in einer Variablen speichern, kann ich später darauf im Programm verweisen, oder muss ich es an einen anderen Ort im Wörterbuch oder Heap verschieben? Und wenn ich die Adresse nicht speichere, lecke ich Speicher?
Vielen Dank! Ich habe diese Absätze offensichtlich verpasst. Zumindest macht das klar. – harald
Sie haben Recht, obwohl in gForth "mindestens eine Interpretationszeit-Zeichenfolge" eigentlich soviel bedeutet wie Sie möchten. In gForth teilt 'S '' zur Interpretierzeit Speicher zu, kopiert die Zeichenkette dort und gibt sie nie wieder frei (was man zum Interpretieren tun kann). Ich habe dies entdeckt, indem ich 'se s'' und dann 'save-mem 'eingegeben habe. –