Memory 使用此处在Forth中作为临时空间

Memory 使用此处在Forth中作为临时空间,memory,forth,Memory,Forth,我正在用Forth写一个游戏(为了学习) 游戏在“10格板”上进行。我在尝试新东西,所以我做了 here 10 [char] - fill 设置电路板的空间。 然后,在位置3玩“X” [char] X here 3 + c! 这一直运作良好,但提出了一个问题 这样行吗? 如果董事会有一百万个单元格宽呢 感谢所述方法具有特定的环境依赖性,因此您的程序只需符合您的第四系统(即您使用的)程序的环境限制即可 1.数据空间的大小 该词返回“此处由寻址的区域中剩余的空间量”。因此,程序可以检查可用空间

我正在用Forth写一个游戏(为了学习)

游戏在“10格板”上进行。我在尝试新东西,所以我做了

here 10 [char] - fill
设置电路板的空间。
然后,在位置3玩“X”

[char] X here 3 + c!
这一直运作良好,但提出了一个问题

这样行吗?
如果董事会有一百万个单元格宽呢


感谢

所述方法具有特定的环境依赖性,因此您的程序只需符合您的第四系统(即您使用的)程序的环境限制即可

1.数据空间的大小 该词返回“此处由
寻址的区域中剩余的空间量”。因此,程序可以检查可用空间

此外,根据第四标准的小节:

系统应提供以下信息: [...] 程序可用数据空间,地址单位

因此,您只需检查您的Forth系统是否为您的程序提供了足够的数据空间,以及如何配置可用的数据空间(如果有)

2.过渡区 在一般情况下,便携式程序在不保留数据空间的情况下使用数据空间是不安全的

根据第四标准的章节,分配数据空间后,由
PAD
WORD
#>
标识的数据空间区域的内容可能无效。С随后,
PAD
WORD
标识的区域内容更改后,此处
标识的区域内容可能无效

另见:

在许多现有的Forth系统中,这些区域位于此处的
或刚刚超出它,因此存在许多限制

此外,一些Forth系统可能在翻译过程中出于内部目的使用此处由
标识的区域。例如,Gforth 0.7.9在解码转义字符串时使用此区域。
短语:

s\" test\-passed" cr here over type cr type cr
产出:

test-passed
test-passed
因此,您必须检查Forth系统的限制,是否可以在不保留空间的情况下(以及在什么条件下)使用此处由
标识的区域