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