小编xsd*_*sdf的帖子

如何在 Forth 定义中创建单词

我正在使用Gforth,我想在定义中创建一个单词。在 Gforth 的命令行中我可以输入:

create foo
ok
Run Code Online (Sandbox Code Playgroud)

或者更具体地说,我定义了一个数组函数,它需要堆栈上的大小并使用该数组的地址创建一个字:

: array ( n -- ) ( i -- addr)
    create cells allot
        does> cells + ;
Run Code Online (Sandbox Code Playgroud)

因此,如果我输入,10 array foo我就可以稍后使用foo

但如果我在另一个定义中编写,10 array foo则会出现编译错误。我尝试用s" foo"which 编译替换 foo ,但它在运行时爆炸,说:

尝试使用零长度字符串作为名称

有没有办法做到这一点?

definition forth gforth

5
推荐指数
1
解决办法
819
查看次数

标签 统计

definition ×1

forth ×1

gforth ×1