gpt4 book ai didi

postscript - 如何在 PostScript 中避免 stackunderflow(使用变量 # of arguments)

转载 作者:行者123 更新时间:2023-12-03 09:37:03 25 4
gpt4 key购买 nike

我有一个带有两个变量的简单函数

/func {
/var1 exch def
/var2 exch def
... process ...
} def

(var2)(var1)func

我想让 var2 可选。但是,如果不提供 var2,则会导致堆栈下溢错误。我如何才能使 if 语句仅在堆栈不为空时捕获 var2,并且如果堆栈为空则可能分配默认值。

有点像

(Stack is no empty) {/var2 exch def}{/var2 (default) def} ifelse

最佳答案

count 运算符计算堆栈上操作数的数量。您可能想改用 [ 在堆栈上放置一个标记,然后改用 counttomark。当您的例程从其他例程调用时,这可以避免您因遗留或尚未使用的操作数而感到困惑。当然,这意味着您必须提供 [ 作为堆栈上的操作数。

另一种常用方法是让顶部操作数是一个整数,用于计算附加操作数的数量。

关于postscript - 如何在 PostScript 中避免 stackunderflow(使用变量 # of arguments),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12362322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com