g第四浮点计算与局部变量



在Forth中,可以使用单独的浮点堆栈进行除法和乘法。计算 3/4 的典型示例是:

3.e 4.e f/ f.
0.75  ok

这是0.75。但是,如果计算是在使用局部变量的单词内完成的,会发生什么?

: calc { a b } 
a b f/ f.
;
3.e 4.e calc 
:2: Stack underflow
3.e 4.e >>>calc<<< 
Backtrace:
$7FDF1C7C1220 >l 

看起来,Forth 期望整数堆栈的值为空,因为在函数调用之前,变量被放入浮动堆栈。问题是如何以某种方式修改计算词,即局部变量取自浮点堆栈?

可以使用F:类型说明符指定变量为浮点型。

: calc { F: a F: b }
a b f/ f.
;
3.e 4.e calc  => 0.75  ok

有关详细信息,请参阅 gforth 手册中的第 5.21.1 节。

相关内容

  • 没有找到相关文章