我正在使用Gforth,我想在定义中创建一个词。在 Gforth 的 cmd 行中,我可以输入:
create foo
ok
或者更具体地说,我定义了一个数组函数,它期望堆栈上的大小并创建一个带有该数组地址的单词:
: array ( n -- ) ( i -- addr)
create cells allot
does> cells + ;
因此,如果我输入10 array foo
,我可以稍后使用foo
。
但是如果我10 array foo
在另一个定义中写它会给我一个编译错误。我试过用s" foo"
which compiles 替换 foo ,但它在运行时会爆炸,说:
尝试使用零长度字符串作为名称
有没有办法做到这一点?