나는 이것을 읽으려고 애썼지 만 그것에 대해 언급 할 수는 없다.F의 "S ..."수명은 무엇입니까?
표준에 따르면, S"
로 만든 문자열을 수정할 수 없습니다 수 있으며, 문자열 공간이 사전이나 패드 영역에서 오지 않는 Gforth에서 간단한 실험에서 그것은 분명하다 :
hex
here . 7F48AB3B8758 ok
pad . 7F48AB3B8808 ok
s" test" .s <2> 77FDD0 4 ok
해당 주소가 얼마나 오래 유효 할 것으로 예상됩니까?
즉,이 주소 (및 개수)를 변수에 저장하면 나중에 프로그램에서 다시 참조 할 수 있습니까? 아니면 사전이나 힙의 별도 위치로 이동해야합니까? 주소를 저장하지 않으면 메모리가 누출됩니까?
감사합니다. 나는 분명히 그 단락을 놓쳤습니다. 적어도 그것은 그것을 명확하게합니다. – harald
gForth에서 "적어도 하나의 해석 시간 문자열"은 실제로 원하는만큼 의미가 있긴하지만 정확합니다. gForth에서'S '는 해석시에 메모리를 할당하고 거기에 문자열을 복사하고 그것을 결코 해제하지 않습니다. (해석을 위해 괜찮습니다.)'see s "'를 입력 한 다음'save-mem'을 참조하여 이것을 발견했습니다. –