我正在尝试将一个字符串值存储到一个变量中。为了定义这个变量,我使用:
: define CREATE 0 , ;
define x
我可以轻松地使用以下代码将整数/浮点数值存储到x
中:
10 x !
或者
10.0e x f!
我使用@
或f@
来访问它。现在我正在尝试储存一个字符串值:
s" hello world" x !
这样做的问题在于它将两个值推到堆栈上(因为它是一个计数字符串),但是
x !
只会存储堆栈顶部的项,也就是字符串的长度。这很危险,因为堆栈内容可能已被修改,当引用x
时,地址不直接位于长度下方 (坏了!),所以type
会失败。那么我的问题是,有没有一种方法可以将两个值(地址和长度)都存储到x
中?或者是否有不同的数据类型/操作数可以让我实现这一点?感谢任何帮助。