J'ai essayé de lire à ce sujet, mais je ne trouve aucune mention à ce sujet.Quelle est la durée de vie de S "..." dans Forth?
Selon la norme, une chaîne créée avec S"
ne peut pas être modifié, et à partir d'une expérience simple dans Gforth il est évident que l'espace pour la chaîne ne vient pas du dictionnaire ou des zones tampons:
hex
here . 7F48AB3B8758 ok
pad . 7F48AB3B8808 ok
s" test" .s <2> 77FDD0 4 ok
Combien de temps puis-je m'attendre à ce que cette adresse soit valide? En d'autres termes, si je stocke cette adresse (et ce nombre) dans une variable, puis-je la consulter plus tard dans le programme ou dois-je la déplacer vers un emplacement distinct dans le dictionnaire ou dans le tas? Et si je ne stocke pas l'adresse, est-ce que je perds la mémoire?
Merci beaucoup! J'ai évidemment manqué ces paragraphes. Au moins, cela est clair. – harald
Vous avez raison, mais dans gForth "au moins une chaîne d'interprétation" signifie autant que vous voulez. Dans gForth, 'S" 'à l'heure de l'interprétariat alloue de la mémoire, y copie la chaîne et ne la libère jamais (pour l'interprétation), je l'ai découvert en entrant' see s ''et ensuite' voir save-mem'. –